3

我的发布管道中有一个非常简单的变量替换,但它不起作用。我在connectionStrings.config文件中有这样的变量:

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

然后我在发布管道中定义了变量:

在此处输入图像描述

我还在XML Variable Substitution部署任务中启用了:

在此处输入图像描述

但我运行版本,变量没有被替换。我在日志中收到此消息:

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

这应该很简单,所以不确定我缺少什么设置。帮助!

4

2 回答 2

6

您应该像ExpenseDBConnectionString在发布管道中一样定义变量名称。下面是设置的说明XML variable substitution。变量与keyorname条目匹配

在构建或发布管道中定义的变量将与任何配置文件和 parameters.xml 的 appSettings、applicationSettings 和 connectionStrings 部分中的“key”或“name”条目匹配。变量替换在配置转换后运行。

所以定义的变量应该如下所示:

在此处输入图像描述

下面的截图是我的测试版本的结果,你可以看到 connectionString 被替换了。

在此处输入图像描述

有关 XML 变量替换的更多信息,请在此处查看

还有一些第三方替换工具(即Magic Chunks)可用于替换配置设置。请查看此线程的示例。

于 2020-03-02T03:44:40.683 回答
0
 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

这应该是你的答案?你的文件名不是这样的。

于 2020-02-28T20:32:39.477 回答