Что я сделал для решения этой проблемы, так это поместил несколько exe-файлов в самораспаковывающийся zip-файл и установил PostExtractCommandLine
в отдельный exe-файл установщика, который, в свою очередь, проверил требования, установил необходимые компоненты и перезапустил, когда нужно, и установил мой оригинальный exe's. Это, однако, оставляет после себя все файлы, хотя вы можете сделать так, чтобы «установщик» удалил все, когда это будет сделано.
(Я использовал библиотеку DotNetZip для создания SFX.)
Редактировать
У меня было два приложения, которые я хотел установить: App1 и App2. Это были оба проекта установки MSI, которые можно было установить отдельно. Затем я создал AppsInstaller.exe, который запустил App1.msi и App2.msi, вызвав msiexec /i C:\\Install\\App1.msi /qn
и т. Д., А также выполнил другую работу. Все три программы были помещены в файл SFX, с AppsInstaller.exe в качестве PostExtractCommandLine
. Мой AppsInstaller.exe делал все молча, так что никаких мастеров там, где они есть, и поэтому я использовал msiexec
. Поскольку вы хотите, чтобы волшебник показывал, вы можете просто вызвать msi как Process
и использовать WaitForExit
, чтобы он продолжался по одному.