我使用VS 2008进行开发,并使用CCNet构建,测试和部署我们的应用程序到登台服务器。我希望能够在部署过程中从web.config中删除debug="true"
设置。
我知道我可以在machine.config中设置<deployment retail="true"/>
,但我并不总是能够访问我们部署的服务器。我可以写一些代码来从web.config中删除设置,但我想知道是否有一种方法可以用msbuild或CCNet开箱即用。
答案 0 :(得分:6)
您可以使用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>
注意这是重复的 Setting debug=false in web.config as part of build(我发现太晚了;已经投票结束了这个)
答案 1 :(得分:2)
Microsoft提供了可供下载的Web部署项目 - 这些是在VS中有一些前端的MS构建项目 - 它们允许您交换配置部分。
答案 2 :(得分:0)
使用 Web.config转换 CCNET 的解决方案:
<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>