2013-07-16 18 views
8

wxiファイルに、Program Filesディレクトリの変数を設定したいとします。プログラムファイルのローカライズされた値を選択します。wxiファイルの変数にProgramFilesFolder値を使用する方法

<?define MyDirectory="!(wix.LocalizedProgramFilesFolder)\MyFiles"?> 

私はとLocalizedProgramFilesFolderを定義している:それはProgramFilesFolderのを展開しません

"[ProgramFilesFolder]\MyFiles". 

:MyDirectoryisとして選ばれ、インストール時ただし

<WixVariable Id="LocalizedProgramFilesFolder" Value="[ProgramFilesFolder]"/> 

。 wxiファイルの変数にProgramFilesFolderの値を使用するにはどうすればよいですか?

答えて

7

MyDirectory変数を使用する理由がわかりません。 WixVariable docsが言うように:

WiXの変数は、MSI/MSM/PCPファイルに保持されませんので、MSIファイルがインストールされているとき、彼らは は使用できません。これはWiXのみのコンセプトです。

この値は、使用する場所にテキストとして書き込まれます。したがって、値がインストール時に置換されるようにするには、そのようなコンテキストでのみ値を使用する必要があります。

ProgramFilesFolderの一般的な使用法は、ディレクトリ/ @ Idであり、子孫ディレクトリを持つことができます(MyFilesなど)。注:Directory/@ Idはプロパティでもあり、そのように使用できます。

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="MyFiles" /> 
     </Directory> 
    </Directory> 

INSTALLFOLDER代わりMyDirectoryの使用されています。任意のものを使用することができますが、それはプロジェクトテンプレートのデフォルトです。それはすべての帽子であり、それは公共の財産になります。パブリックプロパティ値は、UIからインストーラシーケンスに渡すか、またはmsiexecまたはブートストラップなどの他のプログラムを使用して渡すことができます。

関連する問題