2011-05-06 55 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>