После слишком много экспериментов я пришел к выводу, что установщик Windows - это просто плохая технология. Но клиенты хотят файлы MSI.
Итак, как я могу создать файл MSI, который извлекает EXE файл во временный каталог и запускает его с параметрами, аналогичными или похожими, которые были переданы в EXE файл?
Параметры для MSI объясняются в Msiexec (параметры командной строки) (низкоуровневый "запуск" MSI - это пакет параметров msiexec. MSI).
EDIT: решение mjmarsh WiX выглядит так, как будто оно работает. У меня просто не было возможности попробовать еще (время хруста). Если это сработает, я буду принимать его.
EDIT: он не работает. Отсутствующая часть: участие/без присмотра не представляется доступным.
Во всяком случае, единственное, что сделало бы эту работу вообще, - это заставить пользовательское действие убить его родительский процесс!
EDIT: Так кто-то опубликовал как дополнительный ответ, обертывающий все это как пользовательское действие после установки. Теоретически возможно, но поскольку может потребоваться перезагрузка (спасибо MS for.NET 4, требующий перезагрузки иногда), мы должны продолжить хакерство. Итак, из матрицы преимуществ:
Transparency: No. One big custom action.
Customizability: No.
Standardization: No.
Management and reporting: No. Appears to work but will not.
Security: No benefit.
Validation: No. The hackery required to survive reboot makes this sure to not work.
Resiliency: Completely defeated.
Rollback: No. Rollback didn't work when we were using MSI anyway.
Patching & Updates: No. We have a local solution anyway.
Logging: No. Appears to work but will not.
Нет точки.