Web.config 调试代码时不转换
Web.config is not transformed when debugging code
我有一个主要的 Web.config
文件,下面有一个 Web.Test.config
、Web.Development.Config
等
当我在测试配置上通过 SlowCheetah 预览转换时,它似乎正确地转换了值。
当我将我的构建环境从开发切换到测试并尝试调试应用程序时,应用程序在主 Web.config
文件中的任何值下运行(即它没有转换任何东西)。
如何让构建环境在调试时选择正确的配置而不是总是使用基础 Web.config
文件?这可能吗?
XML 转换仅在您发布网络应用程序时应用,而不是在构建期间应用。
此 blog post 详细介绍了使用构建设置的变通方法。
您可以在构建时转换 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/
我有一个主要的 Web.config
文件,下面有一个 Web.Test.config
、Web.Development.Config
等
当我在测试配置上通过 SlowCheetah 预览转换时,它似乎正确地转换了值。
当我将我的构建环境从开发切换到测试并尝试调试应用程序时,应用程序在主 Web.config
文件中的任何值下运行(即它没有转换任何东西)。
如何让构建环境在调试时选择正确的配置而不是总是使用基础 Web.config
文件?这可能吗?
XML 转换仅在您发布网络应用程序时应用,而不是在构建期间应用。
此 blog post 详细介绍了使用构建设置的变通方法。
您可以在构建时转换 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/