使用 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 安装程序的步骤。 我想在另一篇文章中讨论详细的设置。