Какой хороший способ удалить debug = "true" из web.config при публикации? - PullRequest
5 голосов
/ 10 февраля 2010

Я использую VS 2008 для разработки и использую CCNet для создания, тестирования и развертывания наших приложений на промежуточном сервере. Я хотел бы иметь возможность удалить параметр debug="true" из web.config как часть процесса развертывания.

Я знаю, что мог бы просто установить <deployment retail="true"/> в machine.config, но у меня не всегда так много доступа к серверам, на которых мы развертываем. Я мог бы просто написать немного кода, чтобы убрать настройки из web.config, но мне было интересно, есть ли способ сделать это из коробки с помощью msbuild или CCNet.

Ответы [ 3 ]

6 голосов
/ 10 февраля 2010

Вы можете использовать Задачи сообщества MSBuild и делать:

<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 Проекты веб-развертывания позволяют заменять части веб-конфигурации ( как Paddy, связанный с )
  • Не уверен, но MSDeploy имеет некоторую форму возможностей вокруг этого
  • NAnt имеет xmlpoke

NB это дубликат Установка debug = false в web.config как часть сборки (что я нашел слишком поздно; поставил голосование, чтобы закрыть это)

2 голосов
/ 10 февраля 2010

Microsoft предоставила для загрузки проекты веб-развертывания - это проекты сборки MS, которые имеют немного внешнего интерфейса в VS - они позволяют менять разделы конфигурации.

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

0 голосов
/ 08 мая 2013

Мое решение для 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>
...