我必须在许多环境中部署我的解决方案(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?
答案 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>