wix bootstrapper

Cómo hacer que la versión del paquete WiX sea igual a la versión de mi aplicación



bootstrapper (2)

El atributo "Versión" en un paquete de WiX se muestra en Programas y características . Por lo tanto, este debería ser el mismo que el número de versión de mi aplicación real, ¿verdad?

En el supuesto de que deberían ser iguales, no parece inmediatamente obvio cómo tener esta actualización automáticamente. Tengo el MSI haciéndolo según esta pregunta , pero no el bit Bundle / Bootstrapper. ¿Cómo puedo hacer que Bootstrapper Bundle haga lo mismo y lea el número de versión de MSI?


Para complementar la respuesta de Isaiah4110 (todavía no puedo comentar y mi edición fue rechazada):

El PackageID proviene del valor de Id para uno de los tipos de paquete (por ejemplo, MsiPackage, ExePackage ...) en su Cadena. Entonces, para hacer referencia al número de versión de <MsiPackage SourceFile="SomePath/MyMsi.msi" Id="MyMsi"/> usaría! (Bind.packageVersion.MyMsi).

Si no tienes una identificación (como yo), deberás definir una.


Para responder a su primera pregunta, no hay reglas duras y rápidas para esto. Por lo tanto, no es obligatorio actualizar la versión del paquete WIX y hacer que coincida con la versión de MSI.

En cuanto a la segunda pregunta, no estoy realmente seguro. Pero puedes probar esta variable de carpeta:

!(bind.packageVersion.PackageID)

EDIT reemplace PackageID con el atributo "ID" del elemento del programa que está instalando. Algo como: Version="!(bind.packageVersion.MyAppName)"

<MsiPackage SourceFile="SomePath/MyAppName.msi" Id="MyAppName"/>

como se menciona en este POST . También revise la documentación de WIX para más variables de la carpeta.

EDITAR 5/11/2017: parece que hubo una confusión sobre lo que debería ser el ID de paquete y he editado la respuesta en base a la respuesta de Bob Lutz a continuación.