Проект установки Visual Studio 2017 - включает распространяемый VC++ 2015
Я создаю установщик для моего приложения, используя тип проекта "Установщик Visual Studio" в Visual Studio 2017.
Я хочу, чтобы мой установщик установил Visual C++ Redistributable 2015 вместе с моим приложением. Я скачал vc_redist.x86.exe
файл, включил его в свой проект, и я пытаюсь выполнить установку как пользовательское действие "установить". Я запускаю с аргументами /install /passive /norestart
,
Когда я выполняю свой установщик, когда он выполняет настраиваемое действие, я получаю эту ошибку:
Существует проблема с этим пакетом установщика Windows. Программа, запущенная как часть установки, завершилась не так, как ожидалось. Обратитесь в службу поддержки или к поставщику пакета.
я могу бежать vc_redist.x86.exe /install /passive /norestart
в командной строке без проблем или ошибок.
Любые предложения или альтернативные способы включить распространяемый Visual C++ как часть моей установки?
2 ответа
Вы не можете запустить этот распространяемый файл как пользовательское действие, потому что это установка на основе MSI, и вы не можете запустить рекурсивные установки MSI (ваши называют VC redist).
В проектах установки Visual Studio вы должны использовать функцию предварительных требований. Щелкните правой кнопкой мыши проект установки в обозревателе решений, выберите "Свойства", затем "Предварительные условия". Это создаст файл setup.exe для установки необходимых компонентов, а затем файла MSI. Насколько я могу судить, Microsoft Visual C++ 14 - это среда выполнения Visual Studio 2015.
Рекомендация: перейдите на WiX Burn (загрузчик / загрузчик / секвенсор), чтобы обеспечить большую гибкость и контроль в будущем (ссылки на WiX ниже).
В качестве альтернативы сначала попробуйте раздел предварительных условий ниже (выберите "
Visual Studio 14
"записи для установки) или попробуйте доступные модули слияния (раздел ниже). Обратите внимание на отказ от ответственности за модули слияния.
- Пример разметки WiX Burn XML.
- WiX Burn Information & Simple Markup Sample - с множеством ссылок для получения дополнительной информации.
- WiX - установите необходимые компоненты и сторонние приложения
Logging & Mutex: что говорит файл журнала? С технической точки зрения обычная проблема заключается в том, что вы не можете установить другой пакет MSI изнутри собственной запущенной установки MSI из-за технических ограничений времени выполнения. Мьютекс настроен так, чтобы предотвратить одновременное выполнение нескольких транзакций установки MSI. Проверьте логи. Я полагаю, что этот распространяемый файл основан на MSI, поэтому вы увидите эту проблему при запуске EXE из пользовательского действия, как вы.
Инструменты развертывания. Проекты установщика Visual Studio очень ограничены, и кажется, что большинство людей со временем переходят от них к другому инструменту развертывания. Может быть, посмотрите здесь - и вот список инструментов. Функция записи WiX (загрузчик / загрузчик / секвенсор) может достичь того, что вам нужно. Также прочитайте ответ PhilDW здесь.
Предварительные условия: Проекты установщика Visual Studio имеют представление предварительных условий (щелкните Prerequisites...
кнопка), где ограниченное число предпосылок может быть определено для установки через setup.exe
bootstrapper (не запускается изнутри самого MSI, но из его загрузочного setup.exe - это означает, что вы не запускаете установку изнутри собственного MSI, а до того, как он начинает установку - и, следовательно, он может работать правильно). Я не уверен, если записи для " Visual Studio 14
"для нужной вам версии. Вы можете попробовать.
Модули слияния: Существуют модули слияния для установки среды выполнения Visual Studio ( см. Здесь, раздел "Среда выполнения Visual C++" - довольно далеко внизу страницы), но в наши дни они кажутся неадекватными по причинам, объясненным здесь (очень важно). По сути, Visual Studio Runtime является более сложным, начиная с 2015 года, и предпочтительным является установщик EXE. Обязательно прочитайте ссылку - пожалуйста. Для того, чтобы найти соответствующие модули слияния, пожалуйста, найдите файлы *.msm под %ProgramFiles(x86)%
- если у вас установлен Visual Studio (и / или Windows SDK). Merge modules can be installed embedded in your own package without the need for a setup.exe launcher
, В Visual Studio щелкните правой кнопкой мыши ваш проект установщика, Add
, затем Merge Module...