2011-12-19 189 views
3

我目前有兩個WIX項目 - 一個用於創建x86安裝程序,另一個用於創建x64安裝程序。我想將這兩個項目合併爲一個使用變量來控制程序流的項目。ProgramFiles64Folder正在安裝到WIX安裝程序中的 Program Files(x86)

我有以下幾點:

<?if $(var.Platform) = x64 ?> 
    <?define ProductName = "CableSolve Web (64 bit)" ?> 
    <?define Win64 = "yes" ?> 
    <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?> 
    <?else ?> 
    <?define ProductName = "CableSolve Web" ?> 
    <?define Win64 = "no" ?> 
    <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?> 
    <?endif ?> 

和我去到Visual Studio - >構建 - >配置管理器和設置的東西,像這樣:

enter image description here

我再經歷和刪除兩個項目的所有組件/目錄中的所有「Win64 ='yes'」和「Win64 ='no'」參數。

我想知道是否還有比這更多的東西,但。當我創建我的x64安裝程序時,我發現它嘗試安裝到C:\ Program Files(x86)...而不是C:\ Program Files。我假設這意味着代碼正在下降到'其他'聲明 - 但我不知道一種方法來確認這一點。

是否還需要設置其他變量才能確保正確生成x64安裝路徑?

感謝

我繼承了所有下面的安裝程序代碼(不包括我目前的工作在其上添加變量)。我已經添加了$(var.PlatformProgramFilesFolder)以及EnvironmentVariables wxi。 enter image description here

EDIT2:這可能是罪魁禍首,但試圖找到爲什麼它的配置是86:

------跳過全部重建:項目:CS Web安裝的X64,配置:發行86 - -----

+0

安裝64位版本時,ProductName顯示爲「CableSolve Web(64位)」還是「CableSolve Web」?另外,你可以向我們展示你的目錄標籤分支。 – 2011-12-19 22:37:14

+0

ProductName顯示爲CableSolve Web。我剛剛用$(var.Platform)替換了'ProductName ='CableSolve Web''位,並且正在構建另一個安裝程序 - 好奇地想知道Platform是什麼。我會在另一個顯示我的電話號碼標籤分支的圖像上傳到另一個圖像。 編輯:構建x64安裝程序時,var.Platform是x86。 – 2011-12-19 22:43:46

+0

查看您的配置管理器屏幕,您有兩個單獨的項目,每個項目都構建一個安裝程序。這兩個項目是相同還是意外產生了不一致? – 2011-12-19 23:45:46

回答

6

兩件事情:

  1. 您需要設置平臺= 「64」 屬性中Package元素得到64 .msi文件
  2. 哪裏是$(var.Platform)variab初始化?如果您打算使用WIX內置平臺變量,則應根據WIX版本使用$(sys.BUILDARCH)或$(sys.PLATFORM)。
相關問題