Создание установщика, который может установить один и тот же пакет несколько раз (в разные папки) с несколькими конфигурациями - PullRequest
4 голосов
/ 11 ноября 2009

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

Мы также разрешаем клиентам (в соответствии с другой схемой лицензирования) локально устанавливать наше программное обеспечение на своих компьютерах.

Это делает создание пакета установки MSI (мы используем WIX) для одного из наших приложений (служба Windows .NET) довольно сложным, и у меня есть один серьезный камень преткновения.

Я не могу понять, как иметь один установщик для версии (MyApp V2.0.0), которую можно установить НЕСКОЛЬКО раз на одну машину со следующими свойствами:

  1. Имя приложения в программах добавления / удаления: «MyApp (CUSTOMERNAME)», где CUSTOMERNAME определяется во время установки как часть графического интерфейса пользователя.

  2. Каждый экземпляр приложения устанавливается в \ Program Files \ Company \ MyApp (CUSTOMERNAME).

  3. Служба, созданная / обновленная, называется «MyApp (CUSTOMERNAME)».

  4. Разрешить обновление отдельных установок, не затрагивая другие установки ВСЕ.

В основном, влияние на установку одного экземпляра не должно влиять на другие.

Кто-нибудь знает, как этого можно достичь или есть какие-либо другие доступные методы?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 ноября 2009

См. Документацию Microsoft по Установка нескольких экземпляров продуктов и исправлений .

По сути, вы не можете сделать это во время выполнения "внутри" MSI (не нарушая другие основные функции установщика Windows, и в этом случае вы могли бы просто использовать решение не от MSI, такое как NSIS)

Если вы хотите создать действительно динамичную систему, в которой конечный пользователь может определить несколько экземпляров во время выполнения, вам нужно создать загрузчик, который запрашивает у пользователя информацию, генерирует MST на лету, а затем запускает MSI с необходимыми параметрами. В качестве альтернативы, создайте MST самостоятельно для каждого клиента (это довольно тривиально для сценария. Посмотрите примеры, представленные в Windows SDK)

Из памяти было обсуждение в списке WiX в прошлом месяце, когда кто-то пытался сделать это при использовании WiX для установки нескольких веб-сайтов на одном сервере. Если вы можете найти соответствующие темы, там должно быть больше ответов, чем у меня там:)

0 голосов
/ 11 ноября 2009

Как насчет использования преобразований MSI, примененных к исходному MSI. Одно преобразование для каждой специальной конфигурации, которая вам нужна. Единственная мысль - чтобы установить один и тот же пакет на одном компьютере, вам нужно изменить GUID продукта, и я не уверен, что это разрешено с преобразованиями. Хотя это стоит исследовать!

...