Ответ 1
Адриан прав. Это может добавить дополнительную информацию.
Я развертываю свое приложение с помощью установщика, который я создаю, используя проект "Установка и развертывание" в visual studio. Когда я создаю проект установки, я получаю файл .exe и .msi.
Я хотел бы узнать разницу между ними.
Я заметил, что .exe не может работать без .msi, но обратное не так.
Адриан прав. Это может добавить дополнительную информацию.
Файл exe представляет собой bootstrapper, который устанавливает любые необходимые предварительные условия, а затем вызывает вашу настройку, которая является файлом msi.
Вы можете запустить настройку самостоятельно, запустив файл msi, но он не сработает, если необходимые предварительные условия не установлены (возможные примеры:.Net framework, VС++, распространяемая версия, более новая версия MSI и т.д.)
Сбой при попытке запустить настройку с помощью загрузочного файла (exe файла) и вашего msi отсутствует, потому что в основном он установит все необходимые условия, а затем попытается запустить ваш установщик (файл msi). Если файл не существует, ему нечего запускать.
В зависимости от ваших потребностей приложения аналогичный метод будет заключаться в использовании Merge Modules для ваших приложений. Модуль слияния будет в основном загружать все необходимые компоненты в ваш основной установщик, поэтому вы получите только один файл MSI, в котором есть все внутри. Вы должны быть уверены, что каждый компонент, который вы используете, имеет доступный модуль слияния, если нет, вам придется использовать загрузчик.
Я считаю, что файлы MSI - это просто скрипты для установки, причем ассоциация является установщиком Windows. Исполняемые файлы обертывают MSI, создавая загрузчик, который делает почти то же самое, но может устанавливать предварительные условия.