WebConfig替换CruiseControl.Net

时间:2011-05-06 19:15:19

标签: web-config web-deployment-project ccnet-config

我必须在许多环境中部署我的解决方案(dev,staging,..)

2选项:替换仅部分的整个文件。任何一个解决方案都将受到赞赏

我制作了4个不同的文件:appSettings.Staging.config,appSettings.Dev.config,connectStrings.Dev.config,connectStrings.Staging.config。

我想在部署期间替换web.config中的那些部分。

我的msBuild部分看起来像这样

  <msbuild>
    <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
    <workingDirectory>C:\Travail\erp.visual.webapp.erpportal</workingDirectory>
    <projectFile>erp.visual.webapp.erpportal.sln</projectFile>
    <buildArgs>/p:ProjectFile=$SolutionFile$ /t:TransformWebConfig /p:Configuration=Staging</buildArgs>
    <targets>Build</targets>
    <timeout>900</timeout>
    <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
  </msbuild>

如何检索“/ p:Configuration = Staging”参数?我尝试下面的

    <ItemGroup Condition=" '$(Configuration)' == 'Staging' ">

      <WebConfigReplacementFiles Include="appSettings.Staging.config">
      <Section>appSettings</Section>  
      </WebConfigReplacementFiles>

      <WebConfigReplacementFiles Include="connectionStrings.Staging.config">
        <Section>connectionStrings</Section>
      </WebConfigReplacementFiles>

    </ItemGroup>          

但是我在哪里将此部分放入ccnet.config?

1 个答案:

答案 0 :(得分:-1)

找到了一种方法。我有一个web.config per environnement。 web.staging.config,web.test.config。 web.uat.config等等

在我的ccnet.config文件中

  <nant>
    <executable>C:\nant\bin\nant.exe</executable>
    <baseDirectory>C:\Travail\erp.visual.webapp.erpportal</baseDirectory>
    <nologo>false</nologo>
    <buildFile>C:\Program Files\CruiseControl.NET\server\build.xml</buildFile>
    <targetList>
     <target>buildAll</target>
    </targetList>
    <buildTimeoutSeconds>60000</buildTimeoutSeconds>
  </nant>

在我的build.xml文件中,我在目标标记中使用Nant的副本文件标记

<copy file="${root.dir}\erp.visual.webapp.erpportal\web.staging.config"
      tofile="${deploy.web.dir}\Web.config" 
      overwrite="true"
      inputencoding="latin1"
      outputencoding="utf-8">
</copy>