MSBuild web.config转换不起作用

drn*_*eel 9 c# msbuild web-config webdeploy

我正在设置CI和D的申请.我创建了一个DEV-Deploy web.config转换,其中包含dev测试环境的连接字符串.

Web配置转换

以下是Web.DEV-Deploy.config连接字符串部分的内容:

  <connectionStrings xdt:Transform="RemoveAttributes(configSource)">
    <add name="DbContext"
      providerName="MySql.Data.MySqlClient"
      connectionString="CXN_STRING"
      xdt:Transform="Insert" xdt:Locator="Match(name)"/>
    <add name="elmah"
      connectionString="CXN_STRING"
      xdt:Transform="Insert" xdt:Locator="Match(name)"/>
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

它应该看起来像:

  <connectionStrings>
    <add name="DbContext" providerName="MySql.Data.MySqlClient"
      connectionString="CXN_STRING"/>
    <add name="elmah" connectionString="CXN_STRING"/>
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我正在使用命令行构建,我尝试了以下命令,这些命令都不起作用:

msbuild web\web.csproj /T:Package /P:Configuration=DEV-Deploy /P:TransformConfigFiles=true
msbuild web\web.csproj /T:Package /P:Configuration=DEV-Deploy /t:TransformWebConfig
Run Code Online (Sandbox Code Playgroud)

部署任务如下所示:

web.deploy.cmd /Y /M:https://MACHINEIP:8172/msdeploy.axd -allowUntrusted /U:USERNAME /P:PASSWORD /A:Basic
Run Code Online (Sandbox Code Playgroud)

web.config在部署时看起来像这样:

<connectionStrings configSource="connectionStrings.config"></connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我已经在我的本地计算机上尽我所能测试并且无法复制该问题.我需要做什么才能使转换在构建中正常工作?

drn*_*eel 3

我们的 CI&D 团队将构建/部署脚本放入源代码管理中,检查后发现上面的一切都是正确的,问题是构建命令的路径错误,而命令本身是正确的。

一旦更新,web.config 就会正确转换。