サービスファブリックアプリケーションでconfig.xmlファイルを変換しようとしています。私が直面している問題は、ソースxmlのルート要素に名前空間があることです。変換後に保持する必要があります。 msbuildのTransformXmlタスクは、ソースxmlのルート要素に名前空間がない場合にのみ機能します。MSBuildを使用してService Fabric Configまたはルート要素の名前空間にXMLファイルを変換します
SOURCEのXML
<Application xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Name="SomeName"
xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Parameters>
<Parameter Name="Key" Value="Default" />
</Parameters>
</Application>
私は実行すると
<?xml version="1.0" encoding="utf-8" ?>
<Application Name="ApplicationName"
xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"
xdt:Transform="SetAttributes(Name)">
<Parameters>
<Parameter Name="Key" Value="TransformedValue" xdt:Locator="Match(Name)" xdt:Transform="SetAttributes(Value)"/>
</Parameters>
</Application>
期待される出力
<Application xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Name="ApplicationName"
xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Parameters>
<Parameter Name="Key" Value="TransformedValue" />
</Parameters>
</Application>
FILEをTRANSFORM TransformXmlタスクを使用してこの変換を行います。私は警告としてこれを取得し、私は期待される出力を得ていない。
no element in the source document matches /Application
誰かがこの前にこれをしたことを願っています。何か案は ?あなたは、デプロイメント時にコンフィグ設定を上書きするサービスファブリック内のパラメータ・ファイルを使用することができます
おかげ
なぜトークンタスクを置き換える使わないのでしょうか? – Mardoxx
@Mardoxx 'トークン置換タスク'とは何ですか?私はmsbuild.exeを使ってプロジェクトをビルドしています。あなたはビジュアルスタジオオンラインビルドサーバーについて話しているかもしれません。私は特に、開発者マシンでもビルド/トランスフォームする必要があります。 – Gurpreet