Pregunta

Básicamente lo que necesito es una forma automatizada para actualizar el número de versión del producto en WiX (3.0 con Votiva, etc), y luego conseguir que el número de versión en un Inno Setup "arranque"

Yo bastante tienen el proceso en su mayoría automatizada, sin embargo los números de versión todavía necesita ser actualizado manualmente lo que obviamente no es lo ideal, pero no pude encontrar la forma de pasar los valores Inno Setup en tiempo de compilación (y cómo hacer referencia a ellos), y en el proyecto de WiX necesito saber como referencia el número de versión de un proyecto diferente en la misma solución en Visual Studio 2008

¿Fue útil?

Solución

No hay necesidad de pasar nada! Usted puede simplemente dejar que el preprocesador InnoSetup leer la información de la versión directamente de recurso de versión del binario, por ejemplo:.

#define AppName "My App"
#define SrcApp "MyApp.exe"
#define FileVerStr GetFileVersion(SrcApp)
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)

[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#AppVerStr}
UninstallDisplayName={#AppName} {#AppVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#AppVerStr}
OutputBaseFilename=MyApp-{#FileVerStr}-setup

Antes de la versión 5.4.1 (2011-02-09) ISPP no se incluyó en el paquete por defecto InnoSetup. Había que descargar el paquete de inicio rápido InnoSetup: http://www.jrsoftware.org/isdl.php #qsp (gracias @Gwyn, para la actualización)

Otros consejos

Usted puede obtener el ProductVersion para WiX de una versión del archivo en el paquete. La sintaxis es algo como:

<Product Version="$(var.FileVersion.FileId)">

O se puede proporcionar en la línea de comandos a vela con el "-dVersionFromCommandLine = 1.0.0.0" switch con una sintaxis como:

<Product Version="$(var.VersionFromCommandLine)">

De cualquier trabaja en últimas versiones de WiX v3. Sólo los últimos trabajos sobre WiX v2.

La manera de hacerlo es con un guión FSM (yo uso de JavaScript pero se puede usar VBScript o incluso un guión SH usando Cygwin) que crea un archivo de cabecera que contiene las definiciones de los números de versión. Se puede utilizar la declaración Wix <include> a arrastrar el número de versión en.

Para la disposición de Inno creo un archivo .iss que contiene el número de versión, que se #include en el script principal ISS.

Estoy en casa, pero puedo publicar algunos ejemplos de código de mañana si lo desea.

EDIT:. Me olvidé de mencionar que corro el script que genera los archivos que contienen el número de compilación durante la etapa previa a la compilación de mis diversos proyectos VS

El código de ejemplo como se había prometido.Esto debería ser suficiente para empezar.

El siguiente JavaScript se puede utilizar para crear un InnoSetup iss archivo que contiene el número de versión.El archivo real y tendrá este aspecto:

VersionInfoVersion=1.2.3.12345
AppVerName=My App v1.2.3.12345

El principal Inno script de Instalación se incluyen en este archivo añadiendo lo siguiente al final de la [Setup] sección:

[Setup]
AppId={{...}}
...

#include "version.iss"

Aquí es el JavaScript (esto podría ser guardado como un archivo separado - version.js para el ejemplo):

createInnoSetupIncludeFile("My App", 1, 2, 3, 12345, "version.iss");

function createInnoSetupIncludeFile(appName, verMajor, verMinor, verSubMinor, buildNumber, headerFileName)
{
    var versionString = verMajor + "." + verMinor + "." + verSubMinor + "." + buildNumber;
    var fileSystemObject = WScript.CreateObject("Scripting.FileSystemObject");
    var fileObject = fileSystemObject.CreateTextFile(headerFileName, true);
    fileObject.WriteLine("VersionInfoVersion=" + versionString);
    fileObject.WriteLine("AppVerName=" + appName + " v" + versionString);
    fileObject.Close();
    fileObject = null;
    fileSystemObject = null;
}

Usted puede modificar este script para crear la versión.iss archivo en una carpeta diferente.

Finalmente, usted necesita para ejecutar el JavaScript - el mejor lugar sería en el Evento anterior a la Compilación de su proyecto de Visual Studio.Agregue el siguiente:

cscript version.js //NoLogo

Sería necesario para cambiar esto para construir un Wix compatibles incluyen el archivo.Yo solía hacer esto, pero de dumping de Wix en favor de Inno Setup, así que no tienen este código a mano.Hay un mechamism para un Wix script, aunque, por lo que se debe apuntar en la dirección correcta - el concepto es el mismo, generar un archivo de texto que define el número de versión y, a continuación, incluir.

Espero que esto ayude.

He encontrado esto para la sección de configuración Inno que parece que funcionaría:

http://agiletracksoftware.com/blog.html?id=4

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