web-dev-qa-db-ja.com

Azure DevopsリリースパイプラインXML変数置換が機能しない

リリースパイプラインに非常に単純な変数置換がありますが、機能しません。私はconnectionStrings.configファイルに変数を持っています:

<?xml version="1.0"?>
<connectionStrings>
  <add name="ExpenseDBConnectionString" connectionString="__ProdConnString__" providerName="System.Data.SqlClient" />
</connectionStrings>

次に、リリースパイプラインで変数を定義します。

enter image description here

デプロイタスクでもXML Variable Substitutionを有効にしています。

enter image description here

しかし、リリースを実行すると、変数は置換されません。ログにこのメッセージが表示されます。

2020-02-28T19:57:26.1262198Z Initiated variable substitution in config file : D:\a\_temp\temp_web_package_875508750741006\Content\D_C\a\1\s\Expenses.Web\obj\Release\Package\PackageTmp\App_Config\ConnectionStrings.config
2020-02-28T19:57:26.1312311Z Processing substitution for xml node : connectionStrings
2020-02-28T19:57:26.1321602Z Skipped Updating file: D:\a\_temp\temp_web_package_875508750741006\Content\D_C\a\1\s\Expenses.Web\obj\Release\Package\PackageTmp\App_Config\ConnectionStrings.config

これはかなり単純なはずなので、どの設定が欠けているのかはわかりません。助けて!

2
M.R.

リリースパイプラインでは、変数名をExpenseDBConnectionStringとして定義する必要があります。以下は設定の説明ですXML variable substitution。変数はkeyまたはnameエントリと照合されます

ビルドまたはリリースパイプラインで定義された変数は、構成ファイルとparameters.xmlのappSettings、applicationSettings、およびconnectionStringsセクションの「key」または「name」エントリと照合されます。変数置換は、構成変換後に実行されます。

したがって、定義された変数は以下のようになります。

enter image description here

以下のスクリーンショットは、私のテストリリースの結果です。connectionStringが置き換えられたことがわかります。

enter image description here

XML変数置換の詳細については、チェックアウトしてください here

構成設定を置き換えるために使用できるサードパーティの代替ツール(つまり、 Magic Chunks )もあります。 this thread の例を確認してください。

1
Levi Lu-MSFT
 XML transformation will be run on the *.config file for transformation configuration files named *.Release.config or *.<stage>.config

https://docs.Microsoft.com/en-us/Azure/devops/pipelines/tasks/transforms-variable-substitution?view=Azure-devops&tabs=Classic#xml-transformation

それはあなたの答えでなければなりませんか?あなたのファイル名はそうではありません。

1
silent