2013-06-05 16 views
14

Próbuję utworzyć instalator z interfejsem użytkownika, używając WiX.Instalator Wix - jak wyświetlić wartość [Producent] w ścieżce instalacji?

Moja INSTALLFOLDER jest ustawiony za pomocą tego:

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

W <Produktu> sekcji, jestem określenia:

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

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

Kiedy uruchamiam instalator i dostać się do panelu Folder docelowy , Rozumiem:

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

Jak mogę to ocenić? ariabły do ​​wyświetlania?

Uwaga: jeśli zostawiam je i klikam Dalej, instaluję i kończę działa. Po prostu wygląda źle.

Odpowiedz

5

Definiuj swoje zmienne w pliku konfiguracyjnym.

Dla przykładu, utwórz plik o nazwie config.wxi zawierające następujące elementy:

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

następnie odwołać zmiennych w pliku .wxs użyciu $(var.Manufacturer) i $(var.ProductName).

+0

Dzięki za pomoc. – serialhobbyist

29

Zmienne wiążące mogą uczynić to bardzo łatwo bez konieczności bałaganowania w definiowaniu zmiennych preprocesora. Byłoby dużo iść tak:

<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> 

Składnia !(bind.) jest udokumentowana w temacie w WiX.chm Linker (light).

+1

Nie wydaje się, aby działało to po zastosowaniu transformacji instancji - nadal otrzymuję domyślną nazwę produktu podczas instalowania innej instancji. – arathorn