2012-06-21 4 views
0

Я пытаюсь настроить различные пути артефактных путей. напримерНужна помощь в преобразовании веб-конфигурации в пути артефакта

В общих настройках TeamCity я указать следующие пути артефакта:

testing\obj\Deploy-Dev\package 
testing\obj\Deploy-Test\package 
testing\obj\Deploy-Live\package 

Но когда я публикую сайт, используя следующие:

/M /P:Configuration=%env.Configuration% /P:DeployOnBuild=True/P:DeployTarget=MSDeployPublish /P:MsDeployServiceUrl=%env.TargetServer%/MsDeployAgentService /P:DeployiisAppPath=%env.IISPath% /P:MSDeployPublishMethod=RemoteAgent /P:CreatePackageOnPublish=True /P:Username=%env.username% /P:Password=%env.password% 

На этом этапе я использую только 1 конфигурации. Я предполагаю, что указав эти пути артефактов. он также преобразует сетевые конфиги в соответствии с указанной конфигурацией. Но это только преобразование, указанное при фактической упаковке.

Любая идея, как преобразовать веб-конфиги во все пакеты.

ответ

1

Я не уверен, полностью ли я понимаю ваш вопрос, но вот что я думаю, что вы просите. «Как я могу создать веб-пакет, который требует всех преобразований web.config, чтобы я мог опубликовать один и тот же пакет в нескольких разных средах?»

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

Я понимаю, что важно создать единый пакет и опубликовать его в разных местах. Мы не смогли создать функции в коробке, но я создал пакет NuGet, PackageWeb, который может помочь в этом случае. У меня есть 5-минутное видео, размещенное по адресу http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx, на которое вы можете взглянуть. Я абсолютно уверен, что это поможет в вашем сценарии. FYI код для пакета-сети является открытым исходным кодом на https://github.com/sayedihashimi/package-web. У нас есть known issues. Если вы в конечном итоге используете это, пожалуйста, дайте мне знать.

+0

Я смотрел видео и задавался вопросом, как вы интегрируете это в автоматическую сборку для TFS? Или вы просто создадите все конфигурации в настройках определения сборки. Что считается лучшей практикой? – SoftwareCarpenter

+0

Его довольно легко автоматизировать. Посмотрите, начиная с 4:25 в видео. Вы можете создать файл .ps1, который имеет конфигурацию (по умолчанию он автоматически ищет файл с именем PublishConfiguration.ps1. Чтобы автоматизировать процесс публикации из TFS, вы будете использовать powershell.exe для вызова скрипта. И использовать файл конфигурации с имя, отличное от PublishConfiguration.ps1, вы просто передадите другой путь файла в качестве параметра при использовании powershell.exe. –

+0

Спасибо. Это хороший материал. Если у меня возникнут вопросы, связанные с этим, я опубликую их в своем блоге. – SoftwareCarpenter

0

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

Если вы хотите создать 3 разных пакета, вам нужно будет указать 3 соответствующих этапа сборки в вашей конфигурации и избавиться от «% env.Configuration%».

+0

Переменная env.configuration позволяет настроить конфигурацию сборки по требованию и пакет, размещенный в этом месте артефакта. – SoftwareCarpenter

+0

@SoftwareCarpenter, Да, я знаю% env.configuration% и его цель. Но если я правильно понимаю, владелец сообщения хочет создать 3 разных пакета, используя единую сборку на TeamCity, поскольку он сделал предположение: «Я предполагаю, что, указав эти пути артефактов, он также преобразует веб-конфиги в соответствии с указанной конфигурацией . ". Если это так, то неясно, зачем нам нужно% env.configuration%, потому что нам действительно нужно просто записать 3 имени конфигурации. Опять же, я не уверен, что я полностью понимаю вопрос :) –

+0

Я согласен с тобой. Мой полный комментарий отрезался. Я думаю, что он либо называет его 3 раза, либо использует решение Сайеда Ибрахима Хашими. Вне всякого сомнения, вопрос путается. – SoftwareCarpenter

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