Я делаю установщик, который включает в себя несколько проектов. Моя установка устанавливает несколько компонентов и DLL.
Мое требование для настраиваемого действия должно быть выполнено только одно после успешного завершения установки Проблема в том, что мой исполняемый файл зависит от библиотеки DLL, входящей в пакет MSI.
Пользовательское действие выглядит следующим образом: -
<InstallExecuteSequence>
<Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>
<CustomAction Id='LaunchFile' FileKey='Migration_and_SQL_Utility.exe' ExeCommand="configurationmanager" Return="asyncNoWait" Impersonate="no" />
Я также пытался настроить это, а также прочитал много документации и решений, но все еще не могу понять, почему мое приложение не запускается.
При запуске в любое время Before = InstallFinalize или After = InstallFiles , это всегда будет показывать мне ошибку компилятора JIT для зависимости DLL. И когда After = InstallFinalize , тогда он просто не запускает мой exe-файл. Я также пытался вставить другие переменные с другой конфигурацией, такие как Execute = deferred и Return = check , но они дают мне другие ошибки, такие как следующие из Event Viewer: -
Продукт: EasyReports - Ошибка 1721. Существует
проблема с этим пакетом установщика Windows. Программа, необходимая для
эта установка для завершения не может быть запущена. Обратитесь в службу поддержки
Поставщик персонала или упаковки. Действие: LaunchFile, расположение: C: \ Program
Файлы (x86) \ EasyReports \ EasyReports \ Migration and SQL Utility.exe,
команда: configurationmanager
Есть ли что-то, чего я не понимаю в Wix Installer или что я упускаю. Я довольно новичок в WiX, но я успешно выполнил настройку для другого проекта и с тем же Custom Action, чтобы выполнить исполняемый файл после того, как установка была завершена, и она работала просто отлично.