2013-06-05 7 views
14

Sto provando a creare un programma di installazione con un'interfaccia utente, utilizzando WiX.Wix Installer - come posso mostrare il valore di [Manufacturer] nel percorso di installazione?

mio installFolder viene configurato tramite questo:

<Directory Id="TARGETDIR" 
      Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="ManufacturerFolder" 
       Name="[Manufacturer]"> 
     <Directory Id="INSTALLFOLDER" 
       Name="[ProductName]" /> 
    </Directory> 
    </Directory> 
</Directory> 

Nella sezione > < prodotto, sto definendo:

<UIRef Id="WixUI_InstallDir" /> 
<UIRef Id="WixUI_ErrorProgressText" /> 

<Property Id="WIXUI_INSTALLDIR" 
      Value="INSTALLFOLDER" /> 

Quando eseguo il programma di installazione e raggiungere il pannello Cartella di destinazione , Vedo:

Install Service to: 
C:\Program Files\[Manufacturer]\[ProductName]\ 

Come posso fare valutare la v ariables per la visualizzazione?

Nota: se li lascio e faccio clic su Avanti, Installa e Fine funziona. Sembra solo male.

risposta

5

Definire le variabili in un file di configurazione.

Ad esempio, creare un file di nome config.wxi contenenti:

<?xml version="1.0" encoding="utf-8"?> 
    <Include> 
    <?define Manufacturer = "Company Name" ?> 
    <?define ProductName = "Product Name" ?> 
    </Include> 

quindi fare riferimento le variabili nel file .wxs utilizzando $(var.Manufacturer) e $(var.ProductName).

+0

Grazie per il vostro aiuto. – serialhobbyist

29

Le variabili del raccoglitore possono semplificare molto la procedura senza dover manipolare la definizione delle variabili del preprocessore. Sarebbe andare un po 'come questo:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFiles64Folder"> 
    <Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)"> 
     <Directory Id="INSTALLFOLDER" Name="!(bind.property.ProductName)" /> 
    </Directory> 
    </Directory> 
</Directory> 

La sintassi !(bind.) è documentato nel Linker (light) argomento in WiX.chm.

+1

Non sembra che funzioni quando viene applicata una trasformazione di istanza: ottengo ancora il nome prodotto predefinito quando si installa un'istanza diversa. – arathorn