¿Qué es una buena utilidad gratuita para crear un ejecutable autoextraíble con una versión de archivo incrustado? [cerrado]

StackOverflow https://stackoverflow.com/questions/151403

Pregunta

Según 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 setup.exe generado por Visual Studio, y colocar la versión del archivo en este ejecutable autoextraíble.

Por lo tanto, necesito una utilidad para crear ejecutables autoextraíbles que admitan incrustar una versión de archivo en su salida. También debe 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 programable.

Todo lo que pude encontrar fue esto , que se ve muy bien, pero yo 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 pasa el mouse sobre Setup-Blorgbeard2008.exe, ve "Versión: 1.0.0.0". El usuario hace doble clic, extrae silenciosamente setup.exe y setup.msi a una carpeta temporal, luego ejecuta setup.exe. Luego, el usuario ve la pantalla normal del instalador y procede normalmente.

Otra edición: Sí, ya no necesito un autoextractor, ya que mi otra pregunta ya ha sido respondida. Eso hace que toda esta pregunta sea irrelevante. sería seguir siendo bueno poder distribuir solo un archivo, en lugar de setup.exe y setup.msi.

¿Fue útil?

Solución

NSIS puede hacer esto.

Parte de nuestro entorno de compilación es un script que genera información de versión en un " encabezado " archivo que nuestras fuentes de 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.

Otros consejos

Un poco sorprendido de que todavía no aparezca en la lista: IExpress es una herramienta simple que viene con Windows y puede usarse para crear instaladores autoextraíbles.

Cuando descarga Windows SDK, hay MSIStuff.exe y Setup.exe para los cuales MS proporciona el código fuente para compilar. MSIStuff "rellenará" el MSI que le das en Setup.exe. Setup.exe se puede distribuir.

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 bajo qué licencia se distribuye la fuente Setup.exe.

En realidad terminé usando NSIS para esta versión en particular, ya que también necesitaba agrupar algunos 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

DotNetZip puede producir un archivo autoextraíble, que incluye un número de versión que aparece en un Explorador de Windows ratón sobre. El SFX también incluye un nombre de producto, descripción, versión del producto y derechos de autor que se muestran en una vista de Propiedades / Detalles en el Explorador de Windows.

El SFX puede ejecutar un comando que especifique después de extraer.

La creación de SFX puede ser programada desde powershell, o puede escribir un programa para hacerlo, usando VB.NET, C #, VBScript o JavaScript, etc.

Para obtener el material del número de versión, necesita al menos v1.9.0.26 de DotNetZip.

nsis parece una buena opción

pruebe inno-setup

establezca la directiva VersionInfoVersion en su número de versión binaria, por ejemplo,

VersionInfoVersion = 1.1.0.0

esto aparecerá en el texto y las propiedades del mouseover

Experimento en progreso aquí:

Información de la versión emergente: http://screencast.com/t/LVqvLfxCj3g

De la información de Visual Studio Assembly: http://screencast.com/t/fqunlMNh13

Instalado con un archivo MSI simple y antiguo.

Al agregar la " Versión: 1.5.0 " texto en la propiedad Descripción del Proyecto de instalación, el número de versión también se muestra en el archivo MSI de la siguiente manera: http://screencast.com/t/A499i6jS

Generalmente solo cambio el nombre del archivo MSI, como DataMonkey_1_5_0.msi para mis propios fines.

Para su información, usar un autoextractor DotNetZip no tiene sentido si está utilizando el programa de arranque bootstrapper setup.exe para verificar que .NET esté instalado (el autoextractor DotNetZip requiere .NET 2.0).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top