建立安裝程式以安裝 64 位元應用程式
環境
- Visual Studio
-
- Visual Studio 社區 2017
- Visual Studio 社區 2019
- WiX 工具集
- 3.11.2
* 它適用於其他版本,但未經驗證
簡介
除非 WiX 顯式指定,否則它僅作為 32 位元應用程式安裝。 例如,在 64 位元作業系統上安裝時,它安裝在「C:\程式檔 」(x86)」資料夾中。
本節介紹作為 64 位應用程式安裝的設置。 假設您已經創建了 WiX 專案,並且安裝程式已創建該專案。
順便說一下,安裝 64 位元應用程式是 32 位元應用程式還是 64 位元應用程式? 由於它取決於包含的檔,請認為安裝程式端的設置到最後。 通過支援 64 位元安裝程式,還可以顯式防止安裝在 32 位元作業系統上。
提前準備
- 您現在在 WiX 中建立安裝程式。
建立項目
為新的 64 位元安裝程式創建專案。 如果需要創建 32 位元和 64 位元安裝程式, 將 32 位劃分為單獨的專案是很有用的,因為它可以同時生成。
創建專案後,可以像 32 位版本一樣設置專案, 將 32 位版本中創建的檔案複製到 64 位元專案。
在 64 位元版本中,所需的文件幾乎與 32 位版本相同,因此有些檔可以共用。 解釋變得有點複雜,所以這次我打折扣。
安裝程式項目的 64 位元設定
變更項目設定以建立 64 位元應用程式安裝程式,但 以下 A 或 B 模式都設置為" 確定"
另一種方法是在包的平台屬性中指定 x64。 現在,它已棄用,設置不起作用,並且必須為每個要安裝的文件設置 64 位元參數。 我不推薦它,因為它效率低下。
A. 將 x64 平台新增到專案
添加 x64,因為最初專案中只有 x86 生成配置。
選擇"生成"和"配置管理器"選單。
將解決方案配置保留為發佈版本,並從 x64 專案平臺中選擇"新建"。
避免創建新平臺「x64」,複製源「x86」,不創建新的解決方案平臺。
添加后,再次打開平臺。 選擇"編輯" 順便說一下,x64 在添加 x64 後立即不在清單中,但當您關閉螢幕並重新顯示時,它可能會添加到清單中。
刪除 x86,因為 WiX 專案中的缺陷會導致初始選擇不切換到 x64,從而導致 x86。 但是,即使 x86 因故障而關閉,它也可能恢復。 如果要確保刪除項目檔「wixproj」,可以在文字編輯器中打開並刪除代碼。
如下圖所示,這是可以的。 如果右上方的活動平臺保持 x86,因此,如果擔心,請重新命名它進行編輯。
B. 將"-arch x64"新增到編譯參數
右鍵單擊 64 位元安裝程式專案以打開" 屬性"
從左側選項卡中選擇「工具設置」,並將配置更改為「發布」。 在"添加參數"中的"比較器"中,輸入 -arch x64。
使目標資料夾為 64 位元目錄
打開產品.wxs。
將以下「目錄 ID= 程式檔案資料夾」 替換為「目錄 ID=」程式檔 64Folder」。
<Wix>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
變更「開始」選單快捷方式的檔案名或資料夾名稱
雖然不是必需的,但如果您按原樣複製 32 位元設置,請選中 32 位元和 64 位元應用程式的「開始」功能表。 快捷方式將掛起。
根據需要更改它。
<Wix>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
<Component Win64="yes" Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="E382FBDF-73E0-4511-A73D-E9798449F30E">
<File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
<Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="ここのファイル名を 64bit 版に変える" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
<!-- 中略 -->
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="ここのフォルダ名を 64bit 版に変える">
<Component Id="ProgramMenuDir" Guid="5A73CC85-A1B3-4409-8C4F-3E8E888A7167">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
整個產品.wxs
在此狀態下生成,並確保創建安裝程式沒有錯誤。 在 64 位元作業系統環境中安裝後,請檢查資料夾和檔是否已在 C:\程式檔案*中創建。
此外,請確保在嘗試在 32 位元作業系統環境中安裝時出現錯誤。