我有一个主Web.config
个文件,其下有一个Web.Test.config
,Web.Development.Config
等。
当我在Test config上通过SlowCheetah预览转换时,它似乎正确地转换了值。
当我将构建环境从开发切换到测试并尝试调试应用程序时,应用程序在主Web.config
文件中的任何值下运行(即它不会转换任何内容)。
如何使构建环境在调试时选择正确的配置,而不是始终使用基本Web.config
文件?这可能吗?
答案 0 :(得分:37)
您可以在构建时转换Web.config
。将此目标添加到*.csproj
文件:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
<TransformXml
Source="Web.Base.config"
Transform="Web.$(Configuration).config"
Destination="Web.config" />
</Target>
将原始配置保留在Web.Base.config
中。它足以启用转换,适用于任何XML配置文件。完全不再需要SlowCheetah。
http://sebnilsson.com/a5410281/asp-net-transform-web-config-with-debug-release-on-build/
答案 1 :(得分:5)
XML转换仅在您发布Web应用程序时应用,而不是在构建期间应用。
此blog post详细说明了使用构建设置的工作。