Wix学习整理(1)——快速入门HelloWorld

时间:2023-03-09 04:47:19
Wix学习整理(1)——快速入门HelloWorld

原文:Wix学习整理(1)——快速入门HelloWorld

1 Wix简介

Wix是Windows Installer XML的简称,其通过类XML文件格式来指定了用于创建Windows Installer安装包数据库的元素。关于Wix的详细介绍,查看Wix Tutorial

通过http://wix.codeplex.com/,我们下载最新的Wix toolset,并进行安装。

2 1+1=2

动手实践是感受最深的方式。下面我们就通过制作一个简单的HelloWorld安装包来感受一下Wix。

2.1 HelloWorld程序

我们编写一个很简单的C# 的HelloWorld程序。

HelloWorld.cs
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace HelloInstallerDemo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}

编译该程序,生成可运行程序HelloWorld.exe。

2.2 制作HelloWorld.msi安装包

在HelloWorld.exe所在文件夹中新建一个文件Product.wxs(.wxs是Wix源文件的扩展名),然后打开该文件,填入下面源代码

Product.wxs
 <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="HelloMSI" Language="1033" Version="1.0.0.0" Manufacturer="LEH" UpgradeCode="1de12ee7-2e94-42ac-979f-06245a0ade30">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="HelloWorld">
<Component Id="ProductComponent" Guid="B5F0C012-49D6-4C63-AFCA-0CE6C24C6D7D">
<File Id="HelloWorld" Source="HelloWorld.exe" />
</Component>
</Directory>
</Directory>
</Directory> <Feature Id="ProductFeature" Title="HelloWorld" Level="1">
<ComponentRef Id="ProductComponent" />
</Feature>
</Product>
</Wix>

保存后,Wix源文件需要经过编译和链接才能够生成所需要的.msi文件,编译命令为candle而链接命令为light,candle.exe和light.exe在安装Wix toolset时安置在目录C:\Program Files\WiX Toolset v3.6\bin下,将该目录添加到系统的环境变量path中,这样我们就可以在任何目录下使用这两个命令(注:修改环境变量path后需要重新系统方能生效)。下面我们进行编译和链接。

首先,打开cmd,通过命令cd切换到Wix源文件所在目录(如我的E:\Program\CSharp\HelloWorld\HelloWorld\bin\Debug);接着,通过命令candle编译Product.wxs文件,

Wix学习整理(1)——快速入门HelloWorld

命令candle编译Wix源文件.wxs生成中间文件.wixobj,然后将命令light作用在.wixobj文件上生成.msi文件,

Wix学习整理(1)——快速入门HelloWorld

上面light命令中-out选项指定了链接生成的文件名为HelloWorld.msi。下面我们查看目录E:\Program\CSharp\HelloWorld\HelloWorld\bin\Debug,

Wix学习整理(1)——快速入门HelloWorld

从上图我们可以看到,我们成功的生成了HelloWorld.msi文件。

2.3 验收我们的成果

双击HelloWorld.msi文件,我们可以看到下面的安装界面

Wix学习整理(1)——快速入门HelloWorld

静等一会,当该界面消失后,表示安装已完成,此时我们的HelloWorld.exe文件安装在目录C:\Program Files\HelloWorld下,

Wix学习整理(1)——快速入门HelloWorld

双击HelloWorld.exe文件,即可运行之,如图所示,

Wix学习整理(1)——快速入门HelloWorld

安装后,我们可以右键HelloWorld.msi来卸载。至此,我们已成功实现我们的目标。