2009-02-11 19 views

Respuesta

24

Sí, puede crear un instalador autoextraíble que contenga tanto MSI como el archivo setup.exe bootstrapper.

Creo que es posible hacer eso con WinZip, o puede usar IExpress que viene con Windows. Aquí hay una guía sobre cómo crear a self-extracting executable with IExpress. Puede usar el asistente IExpress o escribir manualmente un archivo de configuración que luego puede ejecutar en el paso posterior a la creación de su proyecto de instalación, p. llamando al archivo de configuración

IExpress /N /Q MySetup.sed 

Una muestra se vería así:

[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%= 

Hay una pequeña salvedad sin embargo, con los escenarios de instalación de extracción automática. Debido a otra solución, estos escenarios son broken con bootstrapper (setup.exe) creado por VS2008 SP1. Para una solución alternativa, consulte el siguiente hilo: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0.

+0

no funciona con VS.NET 2008 Bootstrapper configuración. – Martin

+0

Sí, no funciona debido a un error. Consulte el enlace que he publicado (http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686/?ffpr=0) para obtener una solución alternativa. –

+0

La línea PostInstallCmd en [Strings] debería leer PostInstallCmd = , de lo contrario le dará un mensaje de "error al crear proceso" cuando la instalación finalice. –

2

Me gusta, puede ver cómo usar IExpress en this link!

El único problema que veo es que he generado un instalador en Windows Vista 64bits, estaba tratando de instalar el .exe generado en un servidor con Windows Server 2008 32bits, pero arroja un error sobre el tipo de procesador.

+4

Me encontré con esto también, puede solucionarlo ejecutando C: \ Windows \ SysWoW64 \ IExpress.exe en lugar de uno en C: \ Windows \ System32. De esa forma siempre generará un exe de 32 bits. –