在web.config中设置debug = false作为构建的一部分

时间:2009-03-24 16:05:30

标签: .net asp.net build-automation nant

是否可以指示aspnet_compiler在web.config中设置debug = false?

我的目的是将此作为nant构建过程的一部分进行自动化。我愿意接受除xml解析之外的建议

5 个答案:

答案 0 :(得分:10)

您是否考虑过使用<xmlpoke>

<xmlpoke file="${Build.WebConfig}" 
    xpath="/configuration/system.web/compilation/@debug" 
    value="false">
</xmlpoke>

NAnt Home Page

XML Poke Documentation

答案 1 :(得分:3)

我建议为每个环境使用完全不同的配置文件(在我们的例子中为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

答案 2 :(得分:2)

我解决这个问题的方法是为每个部署环境提供单独的配置文件:

  • 生产
  • 分段
  • 开发

在“构建脚本”中,我复制了我正在构建的类型的配置文件。例如,在暂存时,我会将/configs/staging/*.config复制到网站的根目录中。然后,我的脚本将调用aspnet_compiler来编译应用程序。

答案 3 :(得分:0)

我一直在使用此工具作为构建链的一部分。 它允许基于构建设置在单个xml文件中进行条件配置设置。

http://xmlpreprocess.sourceforge.net/

答案 4 :(得分:0)

使用Web部署项目,您可以在构建之后交换web.config的不同部分。