2013-06-05 10 views
14

私はWiXを使用してUIを使用してインストーラを作成しようとしています。 、私は<製品>セクションで Wixインストーラ - インストールパスに[製造元]の値を表示するにはどうすればよいですか?

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

定義しています

私INSTALLFOLDERは、この使用して設定されている

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

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

私はインストーラを実行し、インストール先のフォルダパネルに着く

私は参照してください:

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

私はそれを評価することができます表示のためのariables?

ノート:残しておいて、[次へ]をクリックすると、インストールして終了します。それはちょうど悪く見える。

答えて

5

設定ファイルに変数を定義します。例えば

、以下を含むファイルの名前config.wxiを作成します。

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

その後$(var.Manufacturer)$(var.ProductName)を使用して.wxsファイル内の変数を参照します。

+0

ありがとうございました。 – serialhobbyist

29

バインダー変数は、プリプロセッサ変数の定義を混乱させることなく、これを非常に簡単にすることができます。それはたくさんのように行きたい:

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

!(bind.)構文はWiX.chmでLinker (light)トピックに記載されています。

+1

インスタンストランスフォームが適用されているときにこの機能が動作しているようには見えません - 別のインスタンスをインストールするときにもデフォルトのProductNameが取得されます。 – arathorn

関連する問題