我们的代码对开发和生产环境使用不同的设置,因此我们正在考虑使用VS2010的web.config转换功能。经过数小时的反复试验,没有任何效果。我们找到了Web.config transformation tester并发现我们一直在尝试的工作(根据这个工具。)
我们尝试使用Build而不是Publish来测试转换。它只能在Publish上运行还是可能出现其他问题?
答案 0 :(得分:3)
是的,它只能在Publish上运行。要测试,发布到本地目录。您需要使用正确的目标环境集发布应用程序。
您还可以将Web配置转换与MS Build集成。
答案 1 :(得分:2)
您似乎无需处于“发布”模式即可生成已转换的Web.config文件。还有一些工作要做。
打开Visual Studio命令提示符并导航到包含.csproj文件的工作项目目录。输入以下命令:
MSBuild project.csproj /t:TransformWebConfig /p:Configuration=Debug
上面的示例将在project.csproj的构建期间运行Debug转换。这会将一个Web.config文件输出到obj \ Debug \ TransformWebConfig \ transformed \目录中,其中Debug是你在上面命令中设置的任何配置。
复制此文件以替换您的根Web.config文件,您就完成了。您可以编写一个批处理脚本来自动运行这两个项目,但对于具有许多配置的大型项目,它可能会变得难以处理。
您可以将这些命令行参数添加到Visual Studio内部的构建过程中,但我不知道如何 - 据我所知,要使用此方法,您必须从命令行构建在Visual Studio中。您仍然可以使用Visual Studio内部的Clean来清除obj文件夹,但它只会清除在IDE中选择的解决方案配置模式。 Clean不会还原您编辑的web.config文件,因此如果需要,您可能需要在继续操作之前对其进行备份。
(从this MSDN article找到的命令行参数。)
答案 2 :(得分:0)
您不需要运行发布/构建包来测试Web.config转换。有一个很酷的技巧可以快速了解转换结果here。向下滚动,直到看到有关创建TransformConfig项目的注释。它就像一个魅力,请注意你可以放心地忽略第7步(坦白说我不知道如何正确地完成这一步,但幸运的是我们不需要它:))。