installation - tener - ¿Cuál es una buena utilidad gratuita para crear un ejecutable autoextraíble con una versión de archivo incrustado?
margen de ganancia formula (9)
De acuerdo con las respuestas a esta pregunta, no puedo incrustar una versión de archivo en mi archivo .msi.
El instalador que le doy al cliente necesita tener una versión de archivo.
Entonces, lo que quiero hacer es crear un ejecutable autoextraíble que contenga el archivo msi y el archivo setup.exe generado por Visual Studio, y poner la versión del archivo en este ejecutable autoextraíble.
Por lo tanto, necesito una utilidad para crear ejecutables autoextraíbles que permitan incrustar una versión de archivo en su salida. También necesita admitir la ejecución automática de un archivo después de la extracción, por lo que puedo iniciar el instalador real automáticamente. Sería bueno si fuera secuenciable.
Todo lo que pude encontrar fue esto , que se ve genial, pero preferiría una alternativa gratuita.
¿Alguien tiene alguna sugerencia?
Editar: para aclarar, realmente no estoy buscando crear un instalador, ya tengo un proyecto de configuración VS. Solo quiero un autoextractor (como WinZip puede crear). Entonces, el usuario mouses sobre Setup-Blorgbeard2008.exe, ve "Version: 1.0.0.0". El usuario hace doble clic en él, extrae de forma silenciosa setup.exe y setup.msi en una carpeta temporal, luego ejecuta setup.exe. El usuario luego ve la pantalla normal del instalador y continúa normalmente.
Otro Editar: Sí, ya no necesito un extractor automático, ya que mi otra pregunta ha sido respondida. Eso hace que toda esta pregunta sea bastante irrelevante. Sería bueno poder distribuir solo un archivo, en lugar de setup.exe y setup.msi.
Cuando descarga Windows SDK, hay MSIStuff.exe y Setup.exe para los cuales MS proporciona código fuente para compilar. MSIStuff "rellenará" el MSI que le das en Setup.exe. Setup.exe puede ser distribuido.
Más información en http://support.microsoft.com/kb/888473
Contras:
- Deberá recompilar Setup.exe con la versión de su producto cada vez que haya una nueva versión de su producto (MSI).
- No estoy seguro de qué licencia se distribuye la fuente Setup.exe.
De hecho, terminé usando NSIS para esta versión en particular, ya que también necesitaba incluir otros instaladores.
Como referencia, aquí está el script que utilicé:
VIProductVersion "1.0.0.0" ; set version here
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here!
VIAddVersionKey "CompanyName" "MyCompany"
VIAddVersionKey "LegalCopyright" "© MyCompany"
VIAddVersionKey "FileDescription" "Installer for MyProgram"
OutFile MyProgram-Setup.exe
SilentInstall silent
Section Main
SetOutPath $TEMP
SetOverwrite on
File SharedManagementObjects.msi
File SQLSysClrTypes.msi
File Release/Setup.exe
File Release/Setup.msi
ExecWait ''msiexec /passive /i "$OUTDIR/SharedManagementObjects.msi"''
ExecWait ''msiexec /passive /i "$OUTDIR/SQLSysClrTypes.msi"''
Exec ''"$OUTDIR/Setup.exe"''
SectionEnd
NSIS puede hacer esto.
Parte de nuestro entorno de compilación es una secuencia de comandos que genera información de la versión en un archivo de "encabezado" del que proviene nuestro script NSIS. Debería poder usar algo similar para incrustar la información de su versión y ciertamente puede hacer que NSIS ejecute un archivo después de la extracción.
De hecho, a medida que NSIS crea el paquete de instalación ... es posible que pueda simplificar mucho su enfoque.
prueba ino-setup
establezca la directiva VersionInfoVersion en su número de versión binaria, por ejemplo
VersionInfoVersion = 1.1.0.0
esto aparecerá en texto y propiedades de mouseover
nsis parece una buena opción
DotNetZip puede producir un archivo autoextraíble, que incluye un número de versión que aparece en el mouseover de Windows Explorer. El SFX también incluye un nombre de producto, descripción, versión del producto y derechos de autor que aparecen en una vista de Propiedades / Detalles en el Explorador de Windows.
El SFX puede ejecutar un comando que usted especifique después de extraer.
La creación del SFX se puede realizar desde PowerShell, o puede escribir un programa para hacerlo, usando VB.NET, C #, VBScript o JavaScript, etc.
Para obtener el número de versión, necesita al menos v1.9.0.26 de DotNetZip.
Experimento en progreso aquí:
Información de la versión emergente: http://screencast.com/t/LVqvLfxCj3g
Desde la información de montaje de Visual Studio: http://screencast.com/t/fqunlMNh13
Instalado con un simple archivo MSI antiguo.
Al agregar el texto "Versión: 1.5.0" en la propiedad Descripción del Proyecto de configuración, el número de versión también se muestra en el archivo MSI de la siguiente manera: http://screencast.com/t/A499i6jS
Por lo general, solo cambio el nombre del archivo MSI, como DataMonkey_1_5_0.msi para mis propios fines.
Un poco sorprendido de que todavía no se encuentre en la lista: IExpress es una herramienta sencilla que viene con Windows y se puede usar para crear instaladores autoextraíbles.
Para su información, usar un autoextractor DotNetZip no tiene sentido si está utilizando el programa de instalación bootstrapper.exe para verificar que .NET está instalado (el autoextractor de DotNetZip requiere .NET 2.0).