2012-08-17 11 views
7

En WIX, puedo hacer esto para generar automáticamente un número de versión decente para mi MSI:¿Vinculación de los valores secundarios de WIX FileVersion?

<?define ProductVersion="!(bind.FileVersion.MyMainExecutable)" ?> 
<Product Version="$(var.ProductVersion)" ... /> 

que produce una cadena como "1.0.1.0" pero quiero sólo los primeros tres partes: "1.0.1 "

¿Cómo puedo lograr esto?

+0

posible duplicado de [¿Cómo puedo configurar la versión del instalador de WiX para la versión de compilación?] (Http://stackoverflow.com/questions/626033/how-can-i-set-the-wix-installer-version -to-the-curent-build-version) –

+0

No es un duplicado. Ya escudriñé esa respuesta :) – l33t

Respuesta

10

No hay forma de obtener solo los primeros tres campos de un límite de FileVersion. Sin embargo, si está bien asignar la versión de cuatro partes al Product/@Version (que es completamente válida, aunque las actualizaciones principales solo se verán en los primeros tres campos), entonces puede acceder a cada parte del mayor, menor, construcción y revisión utilizando el siguientes variables:

!(bind.property.ProductVersion.Major) 
!(bind.property.ProductVersion.Minor) 
!(bind.property.ProductVersion.Build) 
!(bind.property.ProductVersion.Revision) 

Espero que pueda ser útil.

+1

Entonces, ¿podría configurar el título de mi instalador para algo como esto? '" Mi Instalador v! (Bind.property.ProductVersion.Major).! (Bind.property.ProductVersion.Minor).! (Bind.property.ProductVersion.Build) "' – l33t

+0

Creo que 'WIX' debería ser compatible con la lectura de la versión campos de binarios. P.ej. '... TargetFileName.ProductVersion.Major' – l33t

+1

Creo que su primer comentario debería funcionar. El segundo comentario es una solicitud de función razonable. :) –

Cuestiones relacionadas