Назад | Перейти на главную страницу

Я хочу дважды установить MSI

У меня есть своеобразное желание дважды установить msi на машину. Целью двойной установки является первая установка в предварительную папку, запуск развертывания в безопасной среде перед развертыванием в производственной папке.

Обычно мы используем разные машины для представления этих разных сред, однако в этом случае мне нужно использовать одно и то же поле.

Я получаю следующие два сценария:

Первый сценарий не так уж и плох, поскольку в этот момент мы можем разумно деинсталлировать и повторно установить в производственной папке, но второй сценарий - это боль, поскольку мы не хотим деинсталлировать живое производственное развертывание.

Могу ли я передать msiexec параметр, позволяющий это сделать?

Есть ли более подходящий другой подход, который я мог бы использовать?

Виртуализируйте серьезно

Посмотрите, что может сделать для вас программа Скотта Виллеке Less Msiérables (LessMSI) ...

http://lessmsi.activescott.com/

Используйте его для извлечения и изменения руководств и / или содержимого MSI, переупаковки и выполнения вашей «установки дважды».

Невозможно установить один и тот же MSI дважды. Вы мощь иметь возможность открыть MSI и изменить GUID, чтобы установить его во второй раз. Знайте, что здесь есть драконы. Если вам не повезет или продукт не будет исключительно простым, я могу почти гарантировать, что не только ваша вторая установка не сработает, но, скорее всего, вы нарушите и первую установку. Я настоятельно рекомендую проработать любую проблему, которая заставляет вас думать, что необходимо использовать одну коробку.

Установщик Windows имеет встроенную функцию, позволяющую делать то, что вы хотите: "Преобразования экземпляра", но, несмотря на весь свой опыт работы с MSI, я мало использовал его. Он позволяет вам установить один и тот же продукт несколько раз с помощью свойства MSINEWINSTANCE и преобразования, установленного в командной строке.

Если это стороннее приложение, Я бы пошел на подход к виртуализации это уже было рекомендовано. Вы должны знать, что вы можете виртуализировать пакеты, используя Виртуальные пакеты Microsoft App-V или просто используйте обычный VMWare или Виртуальный ПК реализации (виртуальные ПК в отличие от виртуальных пакетов).

Виртуальные пакеты Microsoft App-V а новые технологии виртуализации позволяют сделать несколько новых вещей по сравнению с обычным приложением:

  • Потоковая передача приложений - без локальной установки на машинах - JIT
  • Используйте два несовместимых программного обеспечения на одном компьютере
  • Обновление через сервер
  • Контрольное лицензирование - максимальное количество одновременных пользователей или привязка программного обеспечения к группе / пользователю.
  • Быстро и легко представить приложение пользователям
  • Подробнее о маркетинге Microsoft здесь.

Если это внутреннее приложение там, где вы можете вести диалог с командой разработчиков, жизнеспособным решением является создание второго MSI для разработчиков, который устанавливает предварительную версию вместе с производственной версией. Затем эти файлы MSI необходимо будет создать, чтобы они могли сосуществовать цивилизованно. На самом деле это довольно сложно - и включает в себя такие вещи, как отсутствие борьбы за одни и те же ассоциации файлов, отсутствие регистрации общесистемных компонентов COM из разных мест, отсутствие перезаписи ключей реестра друг друга, использование одних и тех же ярлыков, не перезапись файлов настроек друг друга ( текст, xml, ini и т. д.). Есть много проблем.

Наконец, и подход, который мы обычно выбираем, мы можем заставить MSI установить другую конфигурацию на основе переданных ему параметров. Итак, у вас может быть свойство под названием CUSTOM_ENVIRONMENT = "DEV" для установки тестового экземпляра вашего приложения. Этот подход основан на единственном MSI, способном устанавливать себя в различных вариантах - хотя - и, следовательно, не соответствует тому, что вы просите.

Итак, в итоге (в порядке моих субъективных предпочтений):

  1. Виртуализировать - Мне нравится, что это снимает всю проблему.
  2. Параллельная установка: (Несколько MSI PROD / DEV / UAT, способных сосуществовать бок о бок (Только внутреннее приложение)
  3. Преобразование экземпляра? (как я уже сказал, не использовал - но это то, для чего он должен помочь)
  4. Экологически безопасный MSI (Один MSI с возможностью установки как PROD / DEV / UAT) (Только внутреннее приложение)

Некоторые ссылки:

То, что мешает вам установить его дважды, - это ProductCode Guid, если вы измените его, он удалит сообщение «этот продукт уже установлен» и позволит вам установить. Это то, что делает преобразование экземпляра, но вы можете сделать то же самое, открыв его в Orca и изменив код продукта в таблице свойств.

Очевидно, даже если вы дважды взломаете его для установки, вы захотите убедиться, что не перезаписываете в одних и тех же местах.