Да, вы можете создать самораспаковывающийся установщик, содержащий как MSI, так и файл загрузчика setup.exe.
Я думаю, что это можно сделать с помощью WinZip, или вы можете использовать IExpress с Windows. Вот руководство, как создать самораспаковывающийся исполняемый файл с IExpress . Вы можете либо воспользоваться мастером IExpress, либо вручную написать файл конфигурации, который затем можно будет выполнить на этапе после сборки проекта установки, например позвонив по номеру
IExpress /N /Q MySetup.sed
Пример файла конфигурации будет выглядеть следующим образом:
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
HideExtractAnimation=1
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[Strings]
InstallPrompt=
DisplayLicense=
FinishMessage=
TargetName=MySetup.exe
FriendlyName=My cool application
AppLaunched=CMD /C setup.exe
PostInstallCmd=
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="setup.exe"
FILE1="MySetup.msi"
[SourceFiles]
SourceFiles0=
[SourceFiles0]
%FILE0%=
%FILE1%=
Однако есть несколько предостережений с самораспаковывающимися сценариями установщика. Из-за другого исправления эти сценарии не работают с загрузчиком (setup.exe), созданным VS2008 SP1. Обходной путь см. В следующей теме: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0.