Замена WebConfig CruiseControl.Net - PullRequest
0 голосов
/ 06 мая 2011

Я должен развернуть свои решения во многих средах (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 голосов
/ 11 мая 2011

Нашел способ сделать это.у меня есть 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>
...