#web-config #web-deployment-project #ccnet-config
#web-config #веб-развертывание-проект #ccnet-config
Вопрос:
Мне приходится развертывать свои решения во многих средах (dev, staging, ..)
2 варианта: заменить весь файл только разделами. Решение по любому из них было бы оценено
Я создал 4 разных файла: AppSettings.Staging.config, AppSettings.Dev.config, connectStrings.Dev.config, соединительные строки.Промежуточный файл.config.
Я хочу заменить эти разделы в web.config во время развертывания.
Мой раздел MSBuild выглядит следующим образом
<msbuild>
<executable>C:WINDOWSMicrosoft.NETFrameworkv3.5MSBuild.exe</executable>
<workingDirectory>C:Travailerp.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 FilesCruiseControl.NETserverThoughtWorks.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:
Найден способ сделать это. у меня есть web.config для каждой среды. web.staging.config, web.test.config. web.uat.config и так далее
В моем файле ccnet.config
<nant>
<executable>C:nantbinnant.exe</executable>
<baseDirectory>C:Travailerp.visual.webapp.erpportal</baseDirectory>
<nologo>false</nologo>
<buildFile>C:Program FilesCruiseControl.NETserverbuild.xml</buildFile>
<targetList>
<target>buildAll</target>
</targetList>
<buildTimeoutSeconds>60000</buildTimeoutSeconds>
</nant>
В моем build.xml файл я использую тег копирования файла из Nant в целевом теге
<copy file="${root.dir}erp.visual.webapp.erpportalweb.staging.config"
tofile="${deploy.web.dir}Web.config"
overwrite="true"
inputencoding="latin1"
outputencoding="utf-8">
</copy>