我有一个主Web.config
文件,下面有一个Web.Test.config
,Web.Development.Config
等。
当我在Test配置上通过SlowCheetah预览转换时,它似乎正确地转换了值。
当我将构建环境从开发切换到测试并尝试调试应用程序时,应用程序将在主Web.config
文件中的任何值下运行(i.即它不转换任何东西)。
如何让构建环境在调试时选择正确的配置,而不是总是使用基本的Web.config
文件?这可能吗?
我有一个主Web.config
文件,下面有一个Web.Test.config
,Web.Development.Config
等。
当我在Test配置上通过SlowCheetah预览转换时,它似乎正确地转换了值。
当我将构建环境从开发切换到测试并尝试调试应用程序时,应用程序将在主Web.config
文件中的任何值下运行(i.即它不转换任何东西)。
如何让构建环境在调试时选择正确的配置,而不是总是使用基本的Web.config
文件?这可能吗?
3条答案
按热度按时间mbskvtky1#
您可以在构建时转换
Web.config
。将此目标添加到*.csproj
文件:将原始配置保留在
Web.Base.config
中。它足以启用转换,并且适用于任何XML配置文件。SlowCheetah不再需要了。要避免发布时不需要的转换,请使用此(并查看下面的注解和链接以了解更多详细信息):
从注解中的提示中,我意识到在发布项目时,VisualStudio转换XML两次也有问题。解决这个问题的方法是向Target-tag添加一个条件,如下所示:
http://sebnilsson.com/a5410281/asp-net-transform-web-config-with-debug-release-on-build/
e4yzc0pl2#
XML转换将仅在发布Web应用程序时应用,而不是在构建期间应用。
此blog post详细说明了使用构建设置的解决方法。
zy1mlcev3#
我使用的解决方案是:
应用程序启动时(例如:asax),使用以下代码段更改配置文件路径: