代码之家  ›  专栏  ›  技术社区  ›  ilivewithian

发布时从web.config中删除debug=“true”的好方法是什么?

  •  5
  • ilivewithian  · 技术社区  · 15 年前

    我使用VS 2008来开发和使用ccnet来构建、测试和部署我们的应用程序到一个临时服务器。我想能把 debug="true" 作为部署过程的一部分,从web.config进行设置。

    我知道我可以设定 <deployment retail="true"/> 在machine.config中,但我并不总能访问部署到的服务器。我可以编写一些代码从web.config中去掉设置,但我想知道是否有一种方法可以用msbuild或ccnet实现。

    3 回复  |  直到 9 年前
        1
  •  6
  •   Community CDub    8 年前

    你可以使用 MSBuild Community Tasks 做:

    <XmlUpdate 
            XmlFileName="web.config" 
            XPath="//configuration/system.web/compilation/@debug" 
            Value="false"/>
    

    或者可以使用各种内置的Visual Studio转换技术:

    <configuration xmlns:xdt="...">
    <compilation xdt:Transform="RemoveAttributes(debug,batch)">
    </compilation>
    </configuration>

    • VS2005和2008 Web部署项目允许您替换Web配置的部分( as Paddy linked to )
    • 不确定,但MSDeploy在这方面有某种能力
    • 有一个 xmlpoke

    注意这是 Setting debug=false in web.config as part of build (我觉得太晚了;投票结束这件事)

        2
  •  2
  •   Paddy    15 年前

    微软已经为下载提供了Web部署项目——这些是MS构建项目,在VS中有一些前端——它们允许您交换配置部分。

    http://weblogs.asp.net/scottgu/archive/2008/01/28/vs-2008-web-deployment-project-support-released.aspx

        3
  •  0
  •   Asier    12 年前

    我的解决方案 CCNET web.config转换 :

    <tasks>
        <msbuild>
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
            <workingDirectory>E:\VersionesCC\Trunk_4\SBatz\Gertakariak_Orokorrak\GertakariakMS\Web</workingDirectory>
            <projectFile>GertakariakMSWeb2.vbproj</projectFile>
            <targets>Build</targets>
            <timeout>600</timeout>
            <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
            <buildArgs>
                /noconsolelogger /p:Configuration=Release /v:diag
                /p:DeployOnBuild=true
                /p:AutoParameterizationWebConfigConnectionStrings=false
                /p:DeployTarget=Package
                /p:_PackageTempDir=E:\Aplicaciones\GertakariakMS2\Web
            </buildArgs>
            </msbuild>
    </tasks>