Запрос загрузчика WiX

Я создал один msi для своего продукта, он работает хорошо, но мне нужно установить .net 4.0 в качестве предварительного условия. Я наткнулся на ожог и загрузчик, но у меня есть пара вопросов:

Должен ли я иметь отдельный проект для основного msi и загрузчика?

Моему клиенту нужен msi (не exe), так может ли загрузчик быть msi?


person dftoc    schedule 06.07.2012    source источник


Ответы (2)


Проект загрузчика является отдельным проектом и создает на выходе файл .exe. Это собственный исполняемый файл, тогда как .msi — это, по сути, база данных, которая обрабатывается установщиком Windows.

person BryanJ    schedule 06.07.2012

MSI (установщик Windows) не поддерживает "вложенные" установки, когда один пакет .msi запускается какое-то время, затем приостанавливается, запускает отдельный пакет установщика, а затем продолжает установку с того места, где он был приостановлен. MSI использует некоторые ресурсы Windows, которые по сути являются глобальными для системы, поэтому «внутренняя» установка опережает «внешнюю».

Чтобы выполнить несколько установок как единый пользовательский интерфейс, нужно запускать каждую установку последовательно, по одной за раз. Это цель загрузчика, также известного как цепочка: запускать цепочку установок, ссылка за ссылкой. Загрузчик сам по себе не является установочным пакетом; это инструмент для запуска одного или нескольких установочных пакетов.

Вот почему загрузчик не может быть файлом .msi: он сам по себе не является установочным пакетом. Загрузчик может быть таким же простым, как пакетный файл или скрипт, или вы можете использовать промышленный инструмент, такой как комплект WiX записать, Flexera AdminStudio и т. д.

Имейте в виду, что некоторые установочные пакеты поставляются как .exe — например, установщики .NET Framework или SQL Server. По сути, это самораспаковывающиеся архивы, содержащие один или несколько пакетов .msi, создающие дамп временной копии этих полезных данных, а затем запускающие на ней службу установщика Windows. В некотором смысле они являются «загрузчиками» плюс пакетом, все в одном флаконе. Загрузчик может запускать пакеты (и другие загрузчики), но не наоборот.

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

Вам придется убедить своего клиента, что установщик Windows не может работать так, как он думает. К сожалению, иногда единственный способ сделать это — заменить клиента.

person Davidson Corry    schedule 07.03.2013