使用WiX創建 Windows 安裝程式"MSI"第2部分
入門
上次,我準備了所需的檔並設置了專案。 這一次,您將編輯「產品.wxs」以設置安裝程序的各種設置。
編輯安裝設定 (Product.wxs)
產品.wxs 檔案的內容以 XML 格式描述。 有許多參數,但首先,我們將進行最少的設置,以確保安裝程式可以創建。 如果您想進行更詳細的設置,請訪問其他文章或官方網站。
在建立項目時,代碼如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupLittleSaviorTrial_x86" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
<!-- <Component Id="ProductComponent"> -->
<!-- TODO: Insert files, registry keys, and other resources here. -->
<!-- </Component> -->
</ComponentGroup>
</Fragment>
</Wix>
下面介紹了需要更改的位置。 添加不存在的標記和屬性。
Wix/Product/@Id
設置標識應用程式的 GUID。
有許多工具可以生成 GUID,但使用視覺工作室附帶的工具非常快。 從功能表中選擇「工具」和「創建 GUID」。
獲取包含連字元的 36 位代碼,並將其設置為"Wix/產品/@Id"。
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Product/@Name
這是安裝程式螢幕各部分中顯示的應用程式名稱。 它還是「添加或刪除程式」 清單中顯示的名稱。
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Product/@Manufacturer
輸入製造商的名稱。 它將顯示在安裝程式作者和程式清單的發行者中。
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/Product/UIRef/@Id
輸入標識安裝精靈顯示螢幕的ID。 這一次,我指定"WixUI_Minimal",因為它是只顯示和安裝許可證的最小配置。
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
我認為以下網站將説明您指定哪些內容。
Wix/Product/WixVariable/*
指定要在精靈 UI 中使用的檔案。 最小配置使用三個檔: Id 的值是固定的,並且為值指定檔名。
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
安裝應用程式圖示
用於應用程式圖示,如「添加或刪除程式」。
在圖示元素的「源檔」 中,指定相對於專案資料夾的路徑的 ico 檔。
屬性Id="ARPPRODUCTICON"是圖示的關聯定義。
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix/碎片(設定資料夾)
設置要安裝到的資料夾配置。 最初,您將放置檔,但首先只創建資料夾。
"Id="程序功能表"中設置的"名稱"值是放置在"開始"功能表快捷方式中的資料夾的名稱。 請設置 Guid。
<Wix>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
<Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Fragment>
添加安裝檔
您可以手動將其添加到產品.wxs 檔中。 由於檔需要 GUID,因此當文件數量增加時,這非常困難。 因此,使用WixEdit添加檔。
啟動"WixEdit"。
打開您的產品.wxs 檔。
從左側圖示中選擇「檔」。 刪除「程式檔案資料夾」 下的資料夾。
右鍵按下「程式檔資料夾」 資料夾「資料夾」 資料夾,然後選擇「匯入資料夾」。
選擇要安裝的檔案所在的資料夾。
一系列檔將添加到樹中。
要與其他參數關聯,請選擇添加的資料夾,並將"ID"重新設置為"INSTALLFOLDER"。
創建「開始」功能表的快捷方式。 從 exe 檔的右鍵按單下選單中選擇「新建」和「短」。
添加 Shortcut 後,選擇它,然後右鍵按下空白以添加屬性。
新增以下參數: (請根據程式重新命名唯一名稱。
屬性 | 值 |
---|---|
Id | LITTLESAVIORTRIAL. EXE_shortcut |
Name | 小劍試用版 |
Directory | ProgramMenuDir |
WorkingDirectory | INSTALLDIR |
Icon | LITTLESAVIOR. ICO |
IconIndex | 0 |
Advertise | yes |
然後,選擇"功能"選項卡,右鍵按兩下"產品功能",然後選擇"選擇元件到添加"。
選擇所有。
已添加。
保存。
產品.wxs 應如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Name="リトルセイバー 体験版" Language="1033" Version="1.0.0.0" Manufacturer="ソーサリーフォース" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<UIRef Id="WixUI_Minimal" />
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
<Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="LITTLESAVIOR.ICO" />
<ComponentRef Id="LITTLESAVIORTRIAL.EXE" />
<ComponentRef Id="LITTLESAVIORTRIAL.EXE.CONFIG" />
<ComponentRef Id="ProgramMenuDir" />
</Feature>
<UI />
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
<Component Id="LITTLESAVIOR.ICO" DiskId="1" Guid="0B4DD82C-C6EF-4299-8EAB-4F9BB35FD952">
<File Id="LITTLESAVIOR.ICO" Name="LittleSavior.ico" Source="LittleSaviorTrial\LittleSavior.ico" />
</Component>
<Component Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="8D805936-A25E-4DA6-9A0A-A5BDB2AD768D">
<File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
<Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="リトルセイバー 体験版" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
</File>
</Component>
<Component Id="LITTLESAVIORTRIAL.EXE.CONFIG" DiskId="1" Guid="790C427A-A72C-4444-ACD6-ECF32AA788AD">
<File Id="LITTLESAVIORTRIAL.EXE.CONFIG" Name="LittleSaviorTrial.exe.config" Source="LittleSaviorTrial\LittleSaviorTrial.exe.config" />
</Component>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
<Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
</ComponentGroup>
</Fragment>
</Wix>
生成和運行檢查
在視覺工作室中,將解決方案配置設置為"發佈"。
從生成解決方案開始生成。
成功生成后,將在 bin_發佈資料夾中生成 msi 檔。
運行安裝程式時,安裝程式將啟動。
安裝完成後,將在「開始」功能表中創建快捷方式。
檔放置在「程序檔 (x86)」資料夾中。
應用程式也顯示在「程式和功能」 中。
運行應用程式以確保其正常工作。
總結
在這裡,我們介紹了使用視覺工作室和WiX創建 MSI 安裝程式的步驟。 我想在另一篇文章中討論詳細的設置。