2012-08-22 50 views

回答

4

使用:$(ENV [VARIABLENAME]。)

如$(env.ProgramFiles)

我發現這個在以下職位:Get an environment variable into a WIX property,但是這似乎是詢問如何使用環境變量在機器上安裝程序正在運行

+0

這個例子是在編譯期間。我會提醒您不要在構建工作區之外引用文件,因爲它會與機器上安裝的內容緊密結合。 –

+0

@ChristopherPainter您是否說過使用的程序文件值是來自您製作msi的計算機的值?我還沒有被那個咬傷,現在預計到現在爲止 –

+1

是的。 $()不是Windows Installer表示法。所有Windows安裝程序屬性都使用[]進行轉義。 $()是Windows安裝程序XML預處理器的概念,在構建時變爲文字。嘗試一下,看看使用Orca構建的MSI以查看錶格數據顯示的內容。 –

2

您不應該通過環境變量訪問程序文件。你應該使用ProgramFilesFolder property

有關可用屬性的完整列表,請參閱System Folder Properties

+0

爲什麼你不應該訪問環境變量?這是一個標準的Windows。我想接下來的問題是:你如何訪問wix中的屬性?乾杯 –

+0

@ jonny-leeds,克里斯托弗沒有寫你不應該訪問環境變量,但你不應該在你的例子中嘗試從環境中確定ProgramFilesFolder(因爲有這個任務的預定義屬性)。 ;-) – CodeFox