我有一个包含三个主要.config文件(web.config,one.config和two.config)的项目,带有multi sub .config(web.debug.config,web.test.config,one.debug.config, one.test.config,two.debug.config,two.test.config等。)
我在VS2013中发布了一个发布,我可以选择我将使用的巫婆web.XXX.config文件,它工作正常。但是如何选择one.XXX.config和two.XXX.config文件?
答案 0 :(得分:0)
“首先,您需要在构建服务器上安装Visual Studio Web应用程序构建目标。这可以通过安装Visual Studio的快速版本或Visual Studio Shell Redistributable Package来实现。
然后,在项目中创建一个App.config文件。我放在一个名为“Config”的文件夹中,以避免Visual Studio的任何自动行为。然后,创建您的转换文件,App.Debug.config,App.Release.config以及您需要的任何内容(我通常不使用它们,而是使用Test,Prod,Acceptance等)。现在,这些都将放在App.config旁边,而不像Web.config转换那样链接到它。不用担心,我们很快就会解决这个问题!
接下来,卸载您的项目,然后编辑.csproj文件。首先,我们将修复文件的链接。只需在每个Item中添加DependentUpon元素即可完成此操作。假设你有这个:
<None Include="Config\App.config" />
<None Include="Config\App.Debug.config" />
只需将其更改为:
<None Include="Config\App.config" />
<None Include="Config\App.Debug.config">
<DependentUpon>App.config</DependentUpon>
</None>
现在,让我们继续前进。为了使msbuild转换你的配置文件,我们需要一个构建事件。在文件末尾添加
<UsingTask TaskName="TransformXml" <br> AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterBuild">
<TransformXml Source="Config\App.config"
Transform="Config\App.$(Configuration).config"
Destination="$(OutputPath)\$(AssemblyName).$(OutputType).config" />
</Target>