msdeploy: заменить значения атрибута провайдера во время развертывания? - PullRequest
3 голосов
/ 16 июля 2010

У меня есть вопрос msdeploy о том, как заменить значения атрибутов для поставщиков в исходных манифестах во время развертывания.

Справочная информация:

Я использую msdeploy для создания пакетов развертывания во время сборки выпуска. Я хочу, чтобы пакеты подходили для развертывания для тестирования / подготовки / производства и чтобы я мог изменять значения конфигурации во время развертывания. Одна из вещей, которую необходимо сделать во время развертывания, - это создание очередей сообщений (msmq), то, что msdeploy не поддерживает «из коробки» (технически вы могли бы использовать скрипт и вызывать его из msdeploy, но это не интересно ). Я создал собственный провайдер для msdeploy, который позволяет мне создавать эти очереди сообщений во время развертывания (msmq). Какие очереди для создания и несколько настроек о них указываются в файле sourceManifest.xml, который выглядит примерно так:

<sitemanifest>
  <msmq path=".\private$\some.application/SomeService.svc" isTransactional="True" shouldGrantNetworkServicePeekWrite="True" userNameToGrantFullAccess="testdomain\username" />
  <!-- more (non-relevant) stuff here -->
</sitemanifest>

Содержимое исходного манифеста встраивается в сам пакет.

Вопрос:

Как заменить значения атрибутов для провайдеров?

В частности, мне нужно заменить значение атрибута userNameToGrantFullAccess. Пользователь, которому нужен полный доступ, зависит от среды. У меня действительно хакерский обходной путь, который меня немного смущает, поэтому я надеюсь, что есть хороший способ сделать это. Я попытался использовать msdeploy -declareParam / -setParam , а также команду -replace, но, похоже, не могу понять, что работает. Я надеялся, что тип параметра DeploymentObjectAttribute может привести к чему-то.

Спасибо!

...