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

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

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

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

  • Я установил предварительную версию, я счастлив, я хочу установить производственную, я запускаю MSI, он спрашивает, хочу ли я восстановить или удалить установку
  • У меня установлена ​​производственная версия, я хочу установить новую версию MSI, она сообщает мне, что у меня уже установлена ​​версия продукта, и я должен сначала удалить текущую версию

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

Есть ли настройка, которую я могу дать msiexec, которая позволит это?

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

5 ответов

Решение

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

http://lessmsi.activescott.com/

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

Виртуализация, серьезно

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

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

Виртуальные пакеты 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) (только для внутреннего приложения)

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

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

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

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

Другие вопросы по тегам