2013-07-16 31 views
8

在我的wxi文件中,我想設置一個具有Program Files目錄的變量。我希望它選擇Program Files的本地化值。作爲如何在wxi文件中的變量中使用ProgramFilesFolder值

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

我已經定義LocalizedProgramFilesFolder:

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

安裝然而在MyDirectoryis選爲:

"[ProgramFilesFolder]\MyFiles". 

它不展開ProgramFilesFolder。 如何在我的wxi文件中的變量中使用ProgramFilesFolder值?

回答

7

不確定爲什麼要使用MyDirectory變量。由於WixVariable docs說:

WiX的變量不會持續到MSI/MSM/PCP文件,所以正在安裝MSI文件時不能 使用;這是一個只有WiX的概念。

它的值被寫成文本到任何你使用它的地方。因此,如果您希望該值在安裝時替換屬性,則只能在此類上下文中使用它。

ProgramFilesFolder的典型用法是作爲一個Directory/@ Id,它可以有一個子目錄,如MyFiles。注意:Directory/@ Id也是一個屬性,所以可以這樣使用它。

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

INSTALLFOLDER代替MyDirectory。你可以使用任何你想要的,但是該項目模板的默認值。這是全部上限,這使得它成爲公共財產。公共屬性值可以從UI或使用msiexec或其他程序(如引導程序)傳遞到安裝程序序列中。

相關問題