Pregunta

Tenemos un fragmento de WiX en un archivo SomeDialog.wxs que solicita al usuario alguna información. Se hace referencia en otro fragmento en el archivo InstallerUI.wxs que controla el orden de diálogo. Por supuesto, Product.wxs es nuestro archivo principal. Funciona genial.

Ahora tengo una segunda Visual Studio 2008 Wix 3.0 Proyecto de MSI de otra aplicación y tiene que pedir al usuario de la misma información. Me parece que no puede averiguar la mejor manera de compartir el archivo de modo que el cambio de la información solicitada resultará en ambos archivos .MSI conseguir el nuevo comportamiento.

Sinceramente, no puede decir si un módulo de combinación, un .wsi (incluye) o una .wixlib es la solución correcta. Me hubiera esperado encontrar un ejemplo simple de alguien haciendo esto, pero he logrado hasta el momento.

Editar Basado en de Rob Mensching wixlib entrada de blog , un wixlib pueden ser la respuesta, pero todavía estoy en busca de un ejemplo de cómo hacer esto.

¿Fue útil?

Solución

Estoy muy satisfecho con la opción .wixlib. Me tomó sólo unos minutos para hacer una vez que entendí lo que era un .wixlib.
Hice lo siguiente: En VS2008, Agregar-> Nuevo proyecto ... del tipo "Proyecto Biblioteca WiX" llamado SQLDialog. Un archivo de biblioteca .wxs se crea con un elemento <Fragment></Fragment> vacía. He copiado el elemento de la interfaz de usuario de mi diálogo existente (en mi principal "Proyecto WiX") en el elemento de fragmentos:

<Fragment>
  <UI>
    <Dialog Id="SQLServerPromptingDlg" ... Title="SQL Server Information" ...>
      <Control Id="Next" Type="PushButton" ... Text="!(loc.WixUINext)" />
      ...
    </Dialog>
  </UI>
</Fragment>

He añadido el proyecto wixlib a la configuración de versión de lanzamiento de VS2008. He eliminado el archivo SQLDialog.wxs del Proyecto Principal de WiX y se hace referencia al proyecto wixlib SQLDialog, en su lugar.
Cuando recompilado la solución, el principal proyecto de WiX funcionó exactamente el mismo que antes !! Dulce!

Luego hace referencia el proyecto wixlib SQLDialog de mi otro proyecto WiX y utilizado desde allí. Funcionó muy bien! Servidor de generación está feliz porque el proyecto .wixlib compartido es parte de la solución está compilando. Por lo tanto, para nuestros propósitos, creo que esto era mejor que un directorio "compartida". Sin ofender Bob. Agradezco sus pensamientos.

Otros consejos

Si se trata de un solo archivo, un .wixlib podría ser excesiva, ya que requiere otra .wixproj para construirlo. Lo que hago en casos como el que se pone los .wxs en un directorio "compartida" y agregarlo a varios proyectos utilizando el "enlace añadir" desplegable en el comando "Agregar elemento existente".

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