MSBuild:app.config正在针对给定的environement进行转换,但app.exe.config没有被转换

时间:2015-04-03 07:39:29

标签: msbuild web-config msbuild-task msbuild-4.0 msbuildcommunitytasks

我正在使用MSBuild.exe来构建我们的应用程序。与App.Config一起,我有App.prod.config, app.qa.config, app.dev.config个文件。

在命令行中,我输入以下内容

C:\XXX\MyProject> C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe myBuildFile.build /p:Configuration=DEV

上面的命令,查找app.config和app.dev.config文件,在App.dev.config&中转换占位符。使用app.dev.config文件中的条目生成app.cofig文件。

编译项目后,将创建app.exe.config文件。这一切对我来说都很好。

但是对于生产,我正在正确转换app.config文件,但app.exe.config文件与默认的app.config文件相同(没有任何转换)

以下是app.prod.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations 
     see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
       <add name="EventStore"
             connectionString="XXXXXXXXXXX"
             providerName="System.Data.SqlClient"
             xdt:Transform="SetAttributes"
             xdt:Locator="Match(name)"/>
    <add name="Profile"
         connectionString="XXXXXX"
         providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes"
         xdt:Locator="Match(name)"/>
    <add name="IdentityDB"
         connectionString="XXXXXXXXXXXXXXXXXXXXXXXX"
         providerName="System.Data.OracleClient"
         xdt:Transform="SetAttributes"
         xdt:Locator="Match(name)"/>
  </connectionStrings>
  <appSettings>
    <add key="ApplicationName"
         value="PROD"
         xdt:Transform="SetAttributes"
         xdt:Locator="Match(key)"/>
     </appSettings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(Debug)" />
  </system.web>
</configuration>

1 个答案:

答案 0 :(得分:0)

默认情况下,web.config仅在发布上进行转换。如果要转换app.config或xml文档,那么最好的选择是安装名为SlowCheetah的Visual Studio扩展