【问题标题】:Setting debug=false in web.config as part of build在 web.config 中设置 debug=false 作为构建的一部分
【发布时间】:2009-03-24 16:05:30
【问题描述】:

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

我的意图是将此作为 nant 构建过程的一部分自动化。我对 xml 解析以外的建议持开放态度

【问题讨论】:

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


    【解决方案1】:

    您是否考虑过使用<xmlpoke>

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

    NAnt Home Page

    XML Poke Documentation

    【讨论】:

    • 我建议添加指向 NAnt 主页和 xmlpoke 文档的链接。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      • 生产
      • 分期
      • 发展

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

      【讨论】:

      • +1。实际上,我更进一步并部署了多个 web.config 文件,命名为 web.config.empty、web.config.default 等……这样 1)我永远不会覆盖现有的 web.config 文件,以及 2)用户可以查看以不同方式使用的设置。
      • 当你有一个 10 人以上的开发人员团队时,它也很有帮助,他们都在本地安装了 SQL,Vista IIS7 与 XP 的 IIS6 配置等。团队只需要接受“当配置是更改,确保在所有其他配置文件中传播”
      【解决方案4】:

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

      http://xmlpreprocess.sourceforge.net/

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多