调试代码时不会转换Web.config

时间:2016-02-22 16:52:50

标签: c# visual-studio visual-studio-2015 app-config slowcheetah

我有一个主Web.config个文件,其下有一个Web.Test.configWeb.Development.Config等。

当我在Test config上通过SlowCheetah预览转换时,它似乎正确地转换了值。

当我将构建环境从开发切换到测试并尝试调试应用程序时,应用程序在主Web.config文件中的任何值下运行(即它不会转换任何内容)。

如何使构建环境在调试时选择正确的配置,而不是始终使用基本Web.config文件?这可能吗?

2 个答案:

答案 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详细说明了使用构建设置的工作。