【发布时间】:2009-03-24 16:05:30
【问题描述】:
是否可以指示aspnet_compiler在web.config中设置debug=false?
我的意图是将此作为 nant 构建过程的一部分自动化。我对 xml 解析以外的建议持开放态度
【问题讨论】:
标签: .net asp.net build-automation nant
是否可以指示aspnet_compiler在web.config中设置debug=false?
我的意图是将此作为 nant 构建过程的一部分自动化。我对 xml 解析以外的建议持开放态度
【问题讨论】:
标签: .net asp.net build-automation nant
您是否考虑过使用<xmlpoke>?
<xmlpoke file="${Build.WebConfig}"
xpath="/configuration/system.web/compilation/@debug"
value="false">
</xmlpoke>
【讨论】:
我建议为每个环境使用完全不同的配置文件(在我们的例子中是 prod、test、staging)。根据构建,您只需使用所需的配置,没有混乱,少大惊小怪。 Hanselmen 有关于如何在 Visual Studio 中执行此操作的示例,如果您阅读了第一条评论,Phil Hack 已经将它与 NAnt 一起使用。
<target name="configMerge">
<copy file="${sourcefile}"
tofile="${destinationfile}" overwrite="true">
<filterchain>
<expandproperties />
</filterchain>
</copy>
</target>
此外,如果您使用的是 VS 2010,您现在可以使用 web.config transforms
【讨论】:
我解决这个问题的方法是我为每个部署环境都有单独的配置文件:
在“构建脚本”上,我复制了我正在构建的类型的配置文件。例如,在 Staging 中,我会将 /configs/staging/*.config 复制到网站的根目录中。然后,我的脚本会调用 aspnet_compiler 来编译应用程序。
【讨论】:
我一直将此工具用作构建链的一部分。 它允许基于构建设置在单个 xml 文件中进行条件配置设置。
【讨论】:
使用 web 部署项目,您可以在构建后交换 web.config 的不同部分。
【讨论】: