2011-05-06 54 views
0

我不得不在许多环境在部署解决方案,我(开发,分期,..)WebConfig更换CruiseControl.Net

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:配置=分期” 的说法?我尝试以下

<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

找到了一种方法来做到这一点。我有一个web.config每个环境。 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文件我用的是复制文件标签从南特在目标标签

<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>