2015-05-01 4 views
1

Утро/день/вечер все.преобразование web.config на основе конфигурации решения

Я пытаюсь применить преобразования web.config как часть сборки Jenkins. У меня преобразование выполняется путем добавления следующего к моей csproj:

<Target Name="BeforeBuild"> 
    <TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" /> 
</Target> 

который отлично подходит для того, что теперь он преобразует файл, когда решение запускается локально, за исключением. Поэтому я попытался предотвратить это, добавив условие для ТОЛЬКО применения преобразований для сборки Jenkins. Я добавил конфигурации решения, настроить публикацию профиля использовать это, то пытался добавить условие ...

Solution configuration dropdown

<Target Name="BeforeBuild"> 
    <TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" Condition="'$(Configuration)' == 'Debug Build'" /> 
</Target> 

... и ...... это не работа: - (.

Фактически преобразования полностью прекращают работу при добавлении этого условия (я могу утверждать это, меняя конфигурации решений локально и строя и наблюдая, что локальный файл web.config не изменяется, независимо от того, какой вариант выбран) .

Как получить преобразования, выполняемые когда и только тогда, когда для конфигурации решения установлено значение «Отладка сборки»?

Заранее спасибо.

ответ

2

Если вы используете профиль публикации на сервере сборки, вы можете использовать profile specific web.config transform, чтобы добавить свое настраиваемое преобразование без изменения файлов проекта. Вы можете просто щелкнуть правой кнопкой мыши свой профиль публикации в обозревателе решений и выбрать Add config transform.

Результирующий файл преобразования будет называться web.[publishprofile].config, и это преобразование будет выполняться после преобразования конфигурации (Debug/Release). Он будет выполнен только при публикации/упаковке с использованием этого профиля публикации.


Если опубликовать преобразование профиля не соответствует вашим потребностям, просто добавьте /p:CustomConfigTransform=buildserver MsBuild аргумент на Дженкинс построить сервер и проверить это свойство в скрипте.

<Target Name="BeforeBuild"> 
    <TransformXml Source="Web.config" Transform="Web.$(CustomConfigTransform).config" Destination="Web.config" Condition="'$(CustomConfigTransform)' != ''" /> 
</Target> 

Там нет необходимости добавлять новую конфигурацию сборки. Также я не уверен, поддерживается ли преобразование в тот же файл.

+0

Это работало как шарм, спасибо! – Srini

Смежные вопросы