0

我必须在许多环境中部署我的解决方案(开发、登台、..)

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 中呢?

4

1 回答 1

-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 文件中,我在目标标签中使用来自 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>
于 2011-05-11T13:32:48.947 回答