У меня есть своеобразное желание дважды установить msi на машину. Целью двойной установки является первая установка в предварительную папку, запуск развертывания в безопасной среде перед развертыванием в производственной папке.
Обычно мы используем разные машины для представления этих разных сред, однако в этом случае мне нужно использовать одно и то же поле.
Я получаю следующие два сценария:
Первый сценарий не так уж и плох, поскольку в этот момент мы можем разумно деинсталлировать и повторно установить в производственной папке, но второй сценарий - это боль, поскольку мы не хотим деинсталлировать живое производственное развертывание.
Могу ли я передать msiexec параметр, позволяющий это сделать?
Есть ли более подходящий другой подход, который я мог бы использовать?
Виртуализируйте серьезно
Посмотрите, что может сделать для вас программа Скотта Виллеке Less Msiérables (LessMSI) ...
http://lessmsi.activescott.com/
Используйте его для извлечения и изменения руководств и / или содержимого MSI, переупаковки и выполнения вашей «установки дважды».
Невозможно установить один и тот же MSI дважды. Вы мощь иметь возможность открыть MSI и изменить GUID, чтобы установить его во второй раз. Знайте, что здесь есть драконы. Если вам не повезет или продукт не будет исключительно простым, я могу почти гарантировать, что не только ваша вторая установка не сработает, но, скорее всего, вы нарушите и первую установку. Я настоятельно рекомендую проработать любую проблему, которая заставляет вас думать, что необходимо использовать одну коробку.
Установщик Windows имеет встроенную функцию, позволяющую делать то, что вы хотите: "Преобразования экземпляра", но, несмотря на весь свой опыт работы с MSI, я мало использовал его. Он позволяет вам установить один и тот же продукт несколько раз с помощью свойства MSINEWINSTANCE и преобразования, установленного в командной строке.
Если это стороннее приложение, Я бы пошел на подход к виртуализации это уже было рекомендовано. Вы должны знать, что вы можете виртуализировать пакеты, используя Виртуальные пакеты Microsoft App-V или просто используйте обычный VMWare или Виртуальный ПК реализации (виртуальные ПК в отличие от виртуальных пакетов).
Виртуальные пакеты Microsoft App-V а новые технологии виртуализации позволяют сделать несколько новых вещей по сравнению с обычным приложением:
Если это внутреннее приложение там, где вы можете вести диалог с командой разработчиков, жизнеспособным решением является создание второго MSI для разработчиков, который устанавливает предварительную версию вместе с производственной версией. Затем эти файлы MSI необходимо будет создать, чтобы они могли сосуществовать цивилизованно. На самом деле это довольно сложно - и включает в себя такие вещи, как отсутствие борьбы за одни и те же ассоциации файлов, отсутствие регистрации общесистемных компонентов COM из разных мест, отсутствие перезаписи ключей реестра друг друга, использование одних и тех же ярлыков, не перезапись файлов настроек друг друга ( текст, xml, ini и т. д.). Есть много проблем.
Наконец, и подход, который мы обычно выбираем, мы можем заставить MSI установить другую конфигурацию на основе переданных ему параметров. Итак, у вас может быть свойство под названием CUSTOM_ENVIRONMENT = "DEV" для установки тестового экземпляра вашего приложения. Этот подход основан на единственном MSI, способном устанавливать себя в различных вариантах - хотя - и, следовательно, не соответствует тому, что вы просите.
Итак, в итоге (в порядке моих субъективных предпочтений):
Некоторые ссылки:
То, что мешает вам установить его дважды, - это ProductCode Guid, если вы измените его, он удалит сообщение «этот продукт уже установлен» и позволит вам установить. Это то, что делает преобразование экземпляра, но вы можете сделать то же самое, открыв его в Orca и изменив код продукта в таблице свойств.
Очевидно, даже если вы дважды взломаете его для установки, вы захотите убедиться, что не перезаписываете в одних и тех же местах.