Начать эту установку, просто запустив пакет msi, невозможно, вам нужно запустить программу установки exe

Обновлено: 20.11.2024

Технология установщика Windows использует Msiexec.exe для установки пакетов MSI и MSP. Этот инструмент дает вам полный контроль над процессом установки, позволяя вам установить:

  • варианты установки (установка, удаление, административная установка, реклама продукта)
  • варианты отображения (полный, базовый или без пользовательского интерфейса во время установки)
  • параметры перезапуска (если компьютер будет перезагружен после установки)
  • параметры обновления (применить или удалить обновления)
  • параметры восстановления (только для установленного пакета), которые используются при установке

Обычная форма командной строки msiexec такова:

Параметры установки

При запуске установочного пакета вы можете указать тип установки с помощью следующих параметров:

  • /i — обычная установка
  • /a — административная установка
  • /j - рекламировать продукт
    • u — реклама текущему пользователю
    • m — реклама для всех пользователей
    • /g – идентификатор языка, используемый рекламируемым пакетом.
    • /t — применить преобразование для рекламы пакета

    Пример командной строки:

    Хотите создать пакеты MSI, EXE или MSIX? Загрузите расширенный установщик прямо сейчас.

    Параметры отображения

    Уровень пользовательского интерфейса установки можно настроить в соответствии с целевой средой. Например, пакет, распространяемый среди клиентов, должен иметь полный пользовательский интерфейс, а пакет, развернутый с помощью групповой политики, не должен иметь пользовательского интерфейса. Msiexec.exe задает уровень пользовательского интерфейса установки с помощью следующих параметров:

    • /quiet — тихий режим (отсутствие взаимодействия с пользователем)
    • /passive — автоматический режим (установка показывает только индикатор выполнения)
    • /q - установить уровень пользовательского интерфейса:
      • n — нет пользовательского интерфейса
      • n+ – нет пользовательского интерфейса, кроме модального диалогового окна, отображаемого в конце.
      • б — базовый пользовательский интерфейс
      • b+ — базовый пользовательский интерфейс с модальным диалоговым окном, отображаемым в конце. Модальное окно не отображается, если пользователь отменяет установку. Используйте qb+! или qb!+, чтобы скрыть кнопку [Отмена].
      • b- — базовый пользовательский интерфейс без модальных диалоговых окон. Обратите внимание, что /qb+- не является поддерживаемым уровнем пользовательского интерфейса. Используйте qb-! или qb!-, чтобы скрыть кнопку [Отмена].
      • r — уменьшенный интерфейс
      • f – полный интерфейс

      Пример командной строки:

      Параметры перезапуска

      Иногда установка перезаписывает используемые файлы или требует перезагрузки компьютера для ее завершения. Политику перезагрузки, используемую при установке, можно задать с помощью следующих параметров:

      • /norestart — после завершения установки компьютер не будет перезапущен.
      • /promptrestart — пользователю будет предложено выполнить перезагрузку
      • /forcerestart — после завершения установки компьютер будет перезагружен.

      Пример командной строки:

      Параметры ведения журнала

      При отладке пакета установки вы можете использовать несколько параметров ведения журнала для создания журнала. Этот журнал будет содержать различную информацию для каждого используемого вами параметра:

      • /L - включить ведение журнала
        • i — включить сообщения о состоянии
        • w – включить нефатальные предупреждения
        • e — включить все сообщения об ошибках
        • a — упоминание о начале действия
        • r – включить записи, относящиеся к действию.
        • u – включить запросы пользователей
        • c – включить исходные параметры пользовательского интерфейса.
        • m – включить информацию о нехватке памяти или неустранимом выходе.
        • o – включить сообщения о нехватке места на диске.
        • p — включить свойства терминала
        • v — подробный вывод
        • x – включить дополнительную отладочную информацию
        • + — добавить в существующий файл журнала
        • ! - сбросить каждую строку в лог
        • * — записывать всю информацию, кроме параметров v и x.

        Пример командной строки:

        Параметры обновления

        Командная строка установщика Windows может применять или удалять обновления (например, исправления) с помощью следующих параметров:

        • /p — установить патч MSP. При установке патча в автоматическом режиме вам необходимо установить для свойства REINSTALLMODE значение «ecmus», а для REINSTALL значение «ALL». В противном случае исправление просто обновит файл MSI, кэшированный на целевой машине.
        • /update - применить обновления (если обновлений несколько, их можно разделить через символ ";").
        • /uninstall - удалить обновление для продукта (если обновлений несколько, их можно разделить через символ ";")
          • /package — указывает пакет, для которого удаляется обновление.

          Примеры командной строки:

          В приведенной выше командной строке первый GUID – это идентификатор GUID исправления, а второй – код продукта MSI, для которого было применено исправление.

          Варианты восстановления

          Если у вас есть установленный пакет, вы можете использовать командную строку установщика Windows для его восстановления:

          • /f - восстановить пакет
            • p — восстановить, только если файл отсутствует
            • o — восстановить, если файл отсутствует или установлена ​​более старая версия
            • e — восстановить, если файл отсутствует или установлена ​​равноценная или более ранняя версия
            • d — восстановить, если файл отсутствует или установлена ​​другая версия
            • c – исправить, если файл отсутствует или контрольная сумма не соответствует рассчитанному значению.
            • a — принудительная переустановка всех файлов
            • u – исправить все необходимые записи реестра, относящиеся к конкретному пользователю.
            • m – исправить все необходимые записи реестра, относящиеся к конкретному компьютеру.
            • s — восстановить все существующие ярлыки
            • v — запустить из исходного кода и повторно кэшировать локальный пакет

            Пример командной строки:

            В приведенной выше командной строке GUID — это код продукта MSI, который будет восстановлен.

            Установить общедоступные свойства

            Имя общедоступного свойства содержит только буквы верхнего регистра (например, PROPERTY ). Этот тип свойств можно установить с помощью командной строки следующим образом: PROPERTY="value".

            Пример командной строки:

            Еженедельный веб-семинар с демонстрацией продукта Хотите принять участие в еженедельной демонстрации продукта? Выберите предпочтительный временной интервал.

            Установщик Windows принимает унифицированный указатель ресурсов (URL) в качестве допустимого источника для установки. Установщик Windows может устанавливать пакеты, исправления и преобразования из URL-адреса.

            Если база данных установки находится по URL-адресу, программа установки загружает базу данных в расположение кэша перед началом установки. Программа установки также загружает файлы и CAB-файлы из Интернет-источника, которые подходят для выбора пользователя. Дополнительную информацию см. в разделе Пример установки установщика Windows на основе URL-адреса.

            Командная строка, подобная показанной ранее, должна быть передана установщику, чтобы начать установку из веб-браузера. Как правило, вам не следует загружать и устанавливать пакет, просто дважды щелкнув файл .msi в браузере. Это загрузит файл .msi во временную папку файлов Интернета и передаст установщику следующую команду:

            msiexec /i c:\windows\temporary internet files\package.msi

            Установка завершится ошибкой, если для пакета требуются какие-либо внешние исходные файлы или CAB-файлы, так как они не расположены в том же месте, что и файл .msi.

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

            Метод InstallProduct можно использовать для запуска предыдущей команды из браузера как события по щелчку.

            Обратите внимание: поскольку некоторые веб-серверы чувствительны к регистру, поле FileName в таблице File должно точно соответствовать регистру исходных файлов, чтобы обеспечить поддержку загрузки из Интернета.

            См. Загрузка и установка исправления из Интернета. Дополнительные сведения о защите установок и использовании цифровых сертификатов см. в разделах «Рекомендации по созданию защищенных установок и цифровых подписей» и «Установщик Windows». Дополнительные сведения о том, как создать веб-установку пакета установщика Windows, см. в разделе Загрузка через Интернет.

            Доступные интернет-протоколы

            Поскольку миллениалы составляют более половины сегодняшней рабочей силы, компании больше не могут играть по старым правилам бэби-бумеров или раннего поколения X. Сегодняшние сотрудники не приходят каждый день в один и тот же офис, за один и тот же стол и за один и тот же компьютер, как это было десять лет назад. Будь то по деловым или личным причинам, работа из домашнего офиса, в дороге, в кафе, в коворкинге или даже в удаленном месте не только приемлема, но даже желательна для некоторых компаний.

            С точки зрения ИТ для этого требуются новые корпоративные политики безопасности и рекомендации по использованию собственных устройств (BYOD), а также инфраструктура, которая будет поддерживать это новое цифровое рабочее место с виртуализацией, горячими столами и другими способами повышения производительности. все приложения и технологии, которые нужны сотруднику, легко доступны в любой момент времени и из любого места.

            В противном случае вы потеряете продуктивность — не только потому, что работникам приходится ждать несколько минут, пока все загрузится, но и из-за отвлекающих факторов, возникающих в результате ожидания. Как показывает опрос, 28% миллениалов будут просматривать Facebook или делать личные звонки, ожидая загрузки приложения. Даже время загрузки менее минуты может превратиться в 20 минут просмотра на Facebook.

            Кроме того, с внедрением новых технологий, таких как облачные вычисления и программное обеспечение как услуга, циклы обновления приложений стали значительно короче. Например, приложение Bloomberg получает обновление каждый месяц. Теперь добавьте Windows 10, Office 365, SCCM и другие циклы обновления два-три раза в год, и вы знаете, что потратите много времени только на упаковку и тестирование тысяч приложений!

            Сегодняшняя упаковка приложений требует автоматизации

            Чтобы приспособиться к этой новой скорости изменений, многие ИТ-организации обращаются к автоматизации ИТ не только для управления приложениями, но и для всего процесса трансформации ИТ. Однако, чтобы автоматизировать их, вам нужна возможность создавать надежные и полные исполняемые файлы, которые можно автоматизировать — в противном случае весь ваш процесс остановится, ожидая, когда конечный пользователь нажмет «Далее» во всплывающем окне.

            Прежде чем мы углубимся в этот процесс более подробно, нам нужно определить некоторые основные термины, такие как MSI, EXE и Silent Switch, потому что в последние годы мы обнаружили, что существует много путаницы в отношении того, что есть что, чем они отличаются и как их можно использовать сегодня.

            Что такое файл . EXE (исполняемый) файл?

            Исполняемый файл или .exe, например setup.exe, представляет собой файл, который запускает программу в операционной системе, такой как Windows, без необходимости в дополнительном программном обеспечении для выполнения своих задач. Его нельзя читать как файл данных, поскольку он скомпилирован из исходного кода и обычно содержит графические элементы для графического интерфейса.

            Что такое файл . Файл MSI?

            Изначально файл MSI (или пакет MSI) представлял собой файл базы данных, используемый установщиком Windows (ранее установщик Microsoft) для установки информации об обновлениях, установки значений реестра и т. д. в операционной системе Windows. Несмотря на то, что файлы MSI изначально создавались только для обновлений Windows, многие сторонние поставщики использовали их для установки приложений в Windows.

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

            1. Пользовательский интерфейс для установки файлов
            2. Исполняемые файлы (.exe)
            3. Открыть настройки подключения к базе данных
            4. Настройки конфигурации
            5. Настройки реестра
            6. Выполняемые пользовательские действия
            7. Инструкции по установке
            8. Порядок установки
            9. Фактический файл для установки или путь к несжатому файлу
            10. Другие соответствующие файлы

            Вся эта информация необходима для правильной установки соответствующего приложения на настольный компьютер или сервер.

            MSI в Windows 10

            С 2016 года вы можете устанавливать приложения MSI в Windows 10 с помощью Microsoft Intune и управления мобильными устройствами. Вы можете настроить требования для регистрации, управлять его развертыванием и добавлять его в группы, в которые вы собираетесь его развернуть, в Intune.

            Затем вы можете войти на клиентский компьютер в качестве администратора и зарегистрировать пользователей оттуда, запустив синхронизацию всех новых групповых политик через Azure AD.

            Чем MSI отличается от . EXE-файл?

            Файл .exe — это установщик или загрузчик, не относящийся к MSI, который может включать в себя один или несколько упакованных MSI-файлов, в то время как файл MSI допускает только один. Таким образом, EXE может запускать несколько MSI, то есть необходимая зависимость от . NET и дает пользователям дополнительный контроль над процессом установки.

            Файл MSI также может содержать специальный файл . exe, называемый файлом «загрузчика» setup.exe, который не выполняет установку приложения, а просто проверяет, установлена ​​ли правильная версия установщика Windows, и запускает MSIEXEC.EXE в ОС Windows для выполнения файла MSI.

            MSI могут вывести пользователя из уравнения и выполнить установку, используя предварительно определенные параметры и среду, в которой он устанавливается. Автоматический переключатель, который мы определим далее, имеет решающее значение для того, чтобы MSI не требовал взаимодействия с пользователем для выполнения своей задачи.

            Тихий переключатель

            Обычно при запуске setup.exe пользователю необходимо взаимодействовать с приложением, нажимая «Далее» или выбирая определенный параметр для настройки приложения. Однако, чтобы автоматизировать этот процесс, вам потребуется выполнить автоматическую установку, при которой все запросы пользователя, которые могли бы остановить установку до тех пор, пока пользователь не вмешается, будут подавлены, а установка будет завершена.

            Этого можно добиться, применив один из нескольких «тихих переключателей», доступных поставщикам. Используя тихий переключатель EXE, вы можете создать MSI с Access Capture.На виртуальной машине вы устанавливаете параметры, которые будут использоваться во время установки, в зависимости от среды. Это позволяет загружать приложение с соответствующими протоколами, не требуя, чтобы пользователь нажимал на подсказки или делал выбор. Эта процедура с пакетом MSI менее проблематична, чем использование только EXE-файла.

            Почему вы хотите создать MSI из различных типов файлов .EXE?

            Прежде чем мы рассмотрим, как автоматизировать процесс преобразования, давайте ответим на вопрос, почему мы вообще хотим пройти через эту проблему. На самом деле ответ довольно прост — файл .EXE можно скомпилировать тысячами различных способов с использованием сотен языков. Кроме того, способ разработки файлов .EXE значительно изменился за последние годы. Чтобы иметь возможность автоматизировать их выполнение, это не так просто, как нажать на обычный тихий переключатель (/s для тихого или /q для тихого), поскольку вы не всегда знаете командную строку тихого переключателя.

            Однако в сегодняшних ИТ-средах, которые постоянно и быстрее, чем когда-либо, изменяются, автоматизация стала критически важной. Вам необходимо автоматизировать процесс обнаружения, чтобы позволить владельцу продукта или другому конечному пользователю создать приложение формата .MSI, поскольку все MSI имеют одинаковые простые переключатели без вывода сообщений! Таким образом, автоматизация физического приложения из .MSI в App-V или AppStacks теперь легко возможна из командной строки. Все, что вам нужно сделать, это передать файл .MSI с его автоматическим переключателем через CAPTURE для нужного формата файла виртуального приложения, например, App-V или AppStack.

            Как Exe-файл преобразуется в MSI с помощью инструмента упаковки MSI?

            Обычному предприятию потребуется упаковать и протестировать тысячи приложений в течение одного года, поэтому очень важно эффективно обрабатывать различные исполняемые файлы и автоматически создавать MSI-файлы из файлов .exe. Но как выглядит этот процесс?

            Хотя существует множество различных инструментов для упаковки MSI, я считаю, что Access IT Automation предлагает уникальный и очень интеллектуальный способ упаковки MSI и интеграции этой автоматизации во весь автоматизированный процесс упаковки и тестирования.

            Когда вы загружаете исполняемый файл в Access Capture, этот инструмент достаточно интеллектуален, чтобы определить, какой это тип файла (например, MSI, .exe ), и предоставит вам соответствующие экраны для продолжения:

            • Если Capture распознает пакет MSI, он пропустит фазу обнаружения и сразу же перейдет к экрану, предлагающему пользователю выбрать следующие шаги (например, дать вам возможность создать виртуализированное приложение или протестировать MSI).
            • Если инструмент обнаружит файл . exe, он запускает процесс обнаружения, который позволяет владельцу файла .exe выполнить процедуру установки в режиме обнаружения внутри виртуальной машины. По мере прохождения процесса установки они отвечают на все запросы пользователя, например, кнопки «Далее», лицензирование, включение и выключение кнопок, настройка приложения. Это происходит как часть процесса автоматического создания документации Capture. По сути, Capture создаст снимок файла . exe и процедуру установки и создайте файл MSI.

            Если переключатель молчания отсутствует, Access Capture позволяет разместить переключатель молчания в зависимости от приложения (например, /q или /s) в команде, если вы знаете его для этого конкретного типа файла.

            Заключение

            С новой скоростью обновлений Windows 10, Office 365, SCCM, Windows Server и других быстрых циклов обновления полагаться на утомительную ручную упаковку, чтобы не отставать, больше невозможно. Все больше и больше предприятий обращаются к автоматизации ИТ, чтобы создать эффективную и продуктивную ИТ-среду в обычном режиме.

            Однако, как и во многих других областях ИТ, здесь также действует ключевой принцип "Мусор на входе, мусор на выходе". Чтобы правильно настроить эти автоматизированные процессы, вы должны начать с самого начала, потому что без автоматических, надежных и полных пакетов MSI лучшие инструменты для упаковки приложений не будут бесполезны. Чтобы узнать больше об инструментах для упаковки MSI и о том, на что следует обратить внимание перед их покупкой, продолжайте читать.

            Не позволяйте этим ошибкам упаковки и тестирования сдерживать вас!

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

            После слишком многих экспериментов я пришел к выводу, что установщик Windows — это просто плохая технология. Но клиентам нужны файлы MSI.

            Итак, как мне создать MSI-файл, который извлекает EXE-файл во временный каталог и запускает его с такими же или подобными параметрами, которые были переданы в EXE-файл?

            Параметры MSI объясняются в Msiexec (параметры командной строки) (низкоуровневый «запуск» MSI — это msiexec option package.msi).

            РЕДАКТИРОВАТЬ: WiX-решение от mjmarsh выглядит так, как будто оно работает. У меня просто еще не было возможности попробовать это (время хруста). Если это сработает, я приму это.

            EDIT: это не работает. Отсутствует элемент: обслуживаемый/автоматически недоступный.

            В любом случае, единственное, что может заставить это работать, — это пользовательское действие, которое уничтожит родительский процесс!

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

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

            Glytzhkof: попробуйте запустить из MSI сторонний EXE-файл, который будет распаковывать и вызывать несколько MSI.

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

            Сколько слишком много? Два? Я занимаюсь MSI уже 15 лет и обещаю, что если бы вы знали то же, что и я, вы бы изменили свое мнение.

            12 ответов 12

            Ну, есть бесплатный способ и способ $$$. Я не могу задокументировать здесь все, но это должно помочь вам начать.

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

            В любом случае, вот что:

            Это бесплатный инструмент для создания файлов MSI из набора файлов конфигурации XML. Я оставлю вас искать учебные пособия в Интернете, но вот суть:

            Вы можете сжать свой EXE-файл в программу установки, используя следующий тег в файле WXS:

            Затем вы можете создать пользовательское действие, которое запускает ваш EXE-файл:

            Затем вы вставляете свое пользовательское действие в InstallExecuteSequence в соответствующем месте (я почти всегда запускаю свое действие где-то между InstallInitialize и InstallFinalize )

            Сначала создайте проект "Basic MSI" и убедитесь, что вы сказали, что не хотите не создавать файл setup.exe. Вы устанавливаете это в настройках выпуска.

            По сути, вы делаете то же самое, что и с WiX, но у вас есть для этого пользовательский интерфейс.

            • Вы можете указать свой вспомогательный EXE-файл с помощью прямого редактора и поместить свой EXE-файл в «двоичную» таблицу.
            • Вы можете создать пользовательское действие для запуска этого EXE-файла из узла "Пользовательские действия" в дереве слева.
            • Вы можете вставить настраиваемое действие, выбрав «Последовательности установки» и поместив его в InstallExecuteSequence где-то между InstallInitialize и InstallFinalize, как я уже говорил.

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

            Уже известно, что метод installshield не работает. Он извлекается не во временный каталог, а в целевой каталог, что приводит к той же ошибке, которую мы пытаемся избежать в первую очередь (дата изменения целевого файла часто совершенно неверна).

            Похоже, WiX может сделать это с помощью пользовательского действия и двоичного элемента. К сожалению, руководство в настоящее время не работает, но файл справки в загружаемом двоичном файле работает.

            Недавно у нас был клиент, который сообщил о загадочной недокументированной ошибке при запуске программы установки, которую мы создали с помощью InstallShield. Мы переупаковали его как MSI, и он работал нормально. Мы отказываемся от InstallShield после многих лет разочарований и переходим на WiX.

            Мне кажется, что изменение возврата на asyncNoWait вместо проверки меня устраивает. MSI просто завершает работу, и exe начинает выполняться.

            Я думаю, что проще всего создать файл .MSI с помощью WiX.

            Урок 1 из руководства по WiX — это все, что вам нужно для создания простой установки.

            Я думаю, первый урок должен быть wix.tramontana.co.hu/tutorial/getting-started. Но я не думаю, что это связано с запуском EXE из MSI.

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

            Какие операции выполняет ваш установочный файл EXE? Является ли это в основном копированием файлов, некоторой регистрацией COM и некоторыми записями реестра, или же выполняется сложная логика установки, настройка баз данных и т. д.Причина, по которой я спрашиваю, заключается в том, что, вероятно, было бы очень быстро создать для вас хорошо функционирующий WIX MSI, чтобы вы могли отказаться от подхода EXE.

            Действительно, EXE-файл можно запустить из MSI-файла, но для этого требуется правильная последовательность действий, и он гарантированно вызовет у вас больше беспокойства, чем простой MSI-файл. Если приложение небольшое и во время установки не происходит ничего необычного, я буду рад предоставить вам базовую конверсию WIX.

            Мне непонятно, почему исполняемый двоичный файл должен быть "тронут чем-то другим" после развертывания? Двоичные файлы должны рассматриваться как доступные только для чтения после установки?

            Добавляя к ответу Weir, измените атрибут пользовательского действия, как показано ниже:

            Настройка Return=asyncNoWai не ожидает возврата исполняемого файла. Установщик делает свою работу и нормально закрывается. Тем временем исполняемый файл продолжает выполняться.

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

            Нет решения. Мы выбрали NSIS, так как корпоративная установка MSI в любом случае будет нарушена из-за проблемы вложенности MSI (просто попробуйте установить EXE-оболочку MSI изнутри MSI когда-нибудь).

            Для справки, вот краткое описание инструментов развертывания, их сильных и слабых сторон. Для других людей, которые хотят решить, как выполнить развертывание.

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

            Если вы не хотите управлять MSI, а только запускать EXE, попробуйте Exe to MSI Converter Free. Вы просто указываете путь к EXE и получаете MSI.

            Нет. У меня нет этой проблемы. Мой setup.exe был разработан в Inno Setup, но я не вызываю msi изнутри exe.

            Тогда у вас не будет проблем. Возьмите рабочий MSI (любой MSI), оберните его в оболочку EXE, а затем попробуйте использовать этот инструмент, чтобы обернуть этот EXE в MSI, и наблюдайте впечатляющий результат.

            Также существует бесплатная версия MSI Wrapper. Он также поддерживает удаление и обновление. Кроме того, он создает только одну запись в программах «Установка и удаление».

            В пакете MSI есть вызов поведения "Запустить приложение после установки", что означает, что ваш исполняемый файл будет выполнен после установки MSI (MSI закрыт).

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

            Wix может это сделать. Вот мой пример кода для wix 3.5:

            Не работает. Setup.exe может, в зависимости от обстоятельств, выполнять exe для SQLEXPRESS, который запускает несколько MSI.

            Я создаю исполняемый файл установки с помощью InstallAware. Он имеет собственную оболочку MSI, которая упаковывает сгенерированный EXE-файл в MSI.

            Все работает нормально, EXE может без проблем вызывать другие MSI (включая установку .net, другие сторонние установки), но это потому, что запускающий MSI заканчивает («возвращает») права после запуска установочного EXE-файла, и таким образом они избегают ограничения MSI на рекурсивные вызовы MSI.

            НО - некоторые клиенты (компании), использующие инструменты развертывания MSI, требуют, чтобы MSI (msiexec) возвращался (заканчивался) только после завершения процесса установки, и это проблема с приведенным выше решением.

            Итак, чтобы решить эту проблему:

            InstallAware имеет возможность генерировать установку EXE, используя собственный механизм, а не механизм установщика Windows, чтобы избежать рекурсивного ограничения MSI. Объедините эти два фактора, и вы получите идеальное решение.

            Надеюсь, это кому-нибудь поможет, хотя с тех пор, как этот вопрос был впервые опубликован, прошло много лет.

            Читайте также: