У меня есть вопрос 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 может привести к чему-то.
Спасибо!