Может быть проще заархивировать служебные биты во время сборки и развернуть их с помощью MSBuild, используя задачи расширения MSBuild.Вы бы поместили данные конфигурации вашей среды в файл msbuild .properties (mylocal.service.properites, qp.service.properties, uat.service.properties и т. Д.).Это способ развертывания служб.
примечание: файл свойств будет содержать такие вещи, как строка подключения к базе данных, TargetDir, ServiceName и т. Д.
Имена служб указываются во время установки, см. 'Sc',' installutil 'или фрагмент задачи пакета расширений WindowsService ниже.Это означает, что вы можете скопировать одни и те же служебные биты из нескольких каталогов и установить каждый с уникальным именем (например, QAService, UATService, PRODService).
примечание: я хочу подчеркнуть, что имя службы является соображением времени развертывания,не учитывается время сборки.
<WindowsService TaskAction="Install"
ServiceName="$(ServiceName)"
MachineName="$(TargetServer)"
ServicePath="$(FullServicePath)"
User="$(User)" />
Подход аналогичен для установщиков MSI.Я предполагаю, что ваши установщики запрашивают все необходимые данные конфигурации среды ... Все [достойные] установщики имеют способ предоставить ответы из файла, а не использовать установщик в интерактивном режиме.Итак, как и выше, вы создаете один файл ответов для каждой среды и передаете его установщику в командной строке.
Вы не хотите делать это во время сборки ... и, следовательно, имеете отдельный установщик дляПлатформа.Был вынужден сделать это с помощью древней версии установщика wyse.Мне грустно.Требуется один установщик MSI, который можно запустить в любой среде (с учетом файла ответов для конкретной среды).
Подробная информация о командной строке MSI и формате файла ответов зависит от продукта.Какой установочный пакет вы используете?
Cheers, / jhd