MSBuild web.config转换不起作用

时间:2013-06-13 21:00:29

标签: c# msbuild web-config webdeploy

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

Web config transforms

以下是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>

应该看起来像:

  <connectionStrings>
    <add name="DbContext" providerName="MySql.Data.MySqlClient"
      connectionString="CXN_STRING"/>
    <add name="elmah" connectionString="CXN_STRING"/>
  </connectionStrings>

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

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

部署任务如下所示:

web.deploy.cmd /Y /M:https://MACHINEIP:8172/msdeploy.axd -allowUntrusted /U:USERNAME /P:PASSWORD /A:Basic

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

<connectionStrings configSource="connectionStrings.config"></connectionStrings>

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

1 个答案:

答案 0 :(得分:3)

我们的CI&amp; D团队将构建/部署脚本放入源代码控制中,在查看之后,上面的所有内容都是正确的,问题是构建命令的路径错误,而命令本身是正确的。

更新后,web.config正确转换。