Domanda

Abbiamo un frammento WiX in un file SomeDialog.wxs che chiede all'utente di alcune informazioni. Si fa riferimento in un altro frammento nel file di InstallerUI.wxs che controlla l'ordine di dialogo. Naturalmente, Product.wxs è il nostro file principale. Funziona alla grande.

Ora ho una seconda Visual Studio 2008 Wix 3.0 Progetto per il MSI di un'altra applicazione e ha bisogno di chiedere all'utente per le stesse informazioni. Io non riesco a capire il modo migliore per condividere il file in modo che cambiando le informazioni richieste comporterà sia .MSIs ottenere il nuovo comportamento.

Sinceramente non può sapere se un modulo di unione, un .wsi (include) o un .wixlib è la soluzione giusta. Avrei sperato di trovare un semplice esempio di qualcuno che fa questo, ma ho fallito finora.

Modifica Sulla base di di Rob Mensching wixlib blog , un wixlib può essere la risposta, ma sono ancora alla ricerca di un esempio di come fare questo.

È stato utile?

Soluzione

Sono abbastanza soddisfatto con l'opzione .wixlib. Mi ci sono voluti solo pochi minuti per fare una volta ho capito cosa un .wixlib era.
Ho fatto la seguente: In VS2008, Aggiungi-> Nuovo progetto ... di tipo "Progetto Biblioteche WiX", dal nome SQLDialog. Un file di libreria .wxs viene creato con un elemento <Fragment></Fragment> vuoto. Ho copiato l'elemento dell'interfaccia utente dalla mia finestra esistente (nel mio principale "Progetto WiX") nell'elemento Frammento:

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

ho aggiunto il progetto wixlib alla configurazione build di rilascio in VS2008. Ho cancellato il file SQLDialog.wxs dal progetto principale WiX e fatto riferimento al progetto wixlib SQLDialog, invece.
Quando ho ricompilato la soluzione, il progetto principale WiX funzionato esattamente la stessa di prima !! Sweet!

Poi ho fatto riferimento al progetto wixlib SQLDialog dal mio altro progetto WiX e utilizzato da lì. Ha lavorato grande! Creazione di Server è felice perché il progetto .wixlib condivisa è parte della soluzione di compilare. Così, per i nostri scopi, credo che questo era meglio di una directory "condivisa". Senza offesa Bob. Apprezzo i vostri pensieri.

Altri suggerimenti

Se è solo un file, un .wixlib potrebbe essere eccessivo, in quanto richiede un altro .wixproj per costruirlo. Quello che faccio, in casi del genere è messo le .wxs in una directory "condivisa" e aggiungerlo a più progetti che utilizzano il "link aggiungi" discesa nel comando "Add Existing Item".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top