WiX Help - Authoring (2)

WiX可以创建的Windows Installer数据库类型包括:Windows Installer 安装包 (MSI 文件)和 Merge Modules (MSM 文件)。

编写第一个 .wxs File

选择一个你最喜欢的XML编辑器,来编写全部范例。我使用notepad,创建一个新文件“product.wxs”。虽然取什么文件名都无所谓,但.wxs扩展名可以让我们知道这是一个Windows Installer Xml源文件。现在,让我们添加只有3行代码的.wxs文件:

<?xml version='1.0'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
</Wix>

这构成源文件的轮廓。你可以把这个空文件作为candle.exe的输入,来输出一个空的object文件。按照下面的步骤,你可以看到非常简单的输出:

C:/test> candle product.wxs
Microsoft (R) Windows Installer Xml Compiler version 1.0.1220.15022
Copyright (C) Microsoft Corporation 2003. All rights reserved


C:/test> type product.wixobj
<?xml version="1.0" encoding="utf-8"?><wixObject
xmlns="http://schemas.microsoft.com/wix/2003/04/objects"
src="C:/test/product.wxs" />

C:/test>

在继续往下之前,先注意两件事情。
(1)当没有任何错误时,除了文件头,candle不输出其他文本。事实上,你可以在命令行中指定-nologo来抑制文件头的输出。这种情况下,candle不输出任何信息,除非有错误产生。
(2)源文件的路径被储存在.wixobj文件中。这有助于追踪错误的来源。事实上,当错误产生时,链接程序使用"src"属性输出更多信息的错误消息。

现在我们已经看到了一个空的源文件产生了一个空的object文件。让我们创建一个可安装的Windows Installer安装包。添加下面的代码到你的product.wxs文件:

<?xml version='1.0'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
   <Product Id='12345678-1234-1234-1234-123456789012' Name='Test Package' Language='1033'
            Version='1.0.0.0' Manufacturer='Microsoft Corporation' UpgradeCode='12345678-1234-1234-1234-123456789013' >
      <Package Id='12345678-1234-1234-1234-123456789012'
               Description='My first Windows Installer package'
               Comments='This is my first attempt at creating a Windows Installer database'
               Manufacturer='Microsoft Corporation' InstallerVersion='200' Compressed='yes' />

      <Directory Id='TARGETDIR' Name='SourceDir'>
         <Component Id='MyComponent' Guid='12345678-1234-1234-1234-123456789012' />
      </Directory>

      <Feature Id='MyFeature' Title='My 1st Feature' Level='1'>
         <ComponentRef Id='MyComponent' />
      </Feature>
   </Product>
</Wix>

这可以让我们创建一个MSI文件,该文件的ProductCode是{12345678-1234-1234-1234-123456789012},ProductLanguage是"1033",ProductVersion是"1.0.0.0"。所有这些信息都取自<Product/>元素。<Package/>元素定义了所有加入到MSI的摘要信息。最后的<Directory/>和<Feature/>树与<Component/>一起创建。这可以让我们的MSI在机器上注册成功。

按照下面的步骤,让我们编译,链接,安装,并看一下已经注册的文件包。

注意:MSI需要管理员权限,如果不是以管理员权限安装,将退出而无错误提示。

C:/test> candle product.wxs
Microsoft (R) Windows Installer Xml Compiler version 1.0.1220.15022
Copyright (C) Microsoft Corporation 2003. All rights reserved
 
product.wxs
 
C:/test> light product.wixobj
Microsoft (R) Windows Installer Xml Linker version 1.0.1220.15022
Copyright (C) Microsoft Corporation 2003. All rights reserved
 
C:/test> msiexec /i product.msi
 
C:/test> //delivery/tools/msiconfig.exe
.
.
.
{12345678-1234-1234-1234-123456789012} Test Package
.
.
.

在列出的所有你的机器上已经安装的Windows Installer包中,你应该看到"Test Package"。你也可以到Control Panel中的Add/Remove Programs,"Test Package"已经出现在那里。再把它卸载掉。

现在我们已经有了一个可以正确安装和卸载的包。让我们真正安装一些东西。创建一个名为"readme.txt"的文本文件,随便输入一些文本。"Hello, World!"是最讨人喜欢的。接下来,要修改product.wxs:

<?xml version='1.0'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
   <Product Id='12345678-1234-1234-1234-123456789012' Name='Test Package' Language='1033'
            Version='1.0.0.0' Manufacturer='Microsoft Corporation' UpgradeCode='12345678-1234-1234-1234-123456789013'>
      <Package Id='12345678-1234-1234-1234-123456789012'
                Description='My first Windows Installer package'
                Comments='This is my first attempt at creating a Windows Installer database'
                Manufacturer='Microsoft Corporation' InstallerVersion='200' Compressed='yes' />
 
      <Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
 
      <Directory Id='TARGETDIR' Name='SourceDir'>
         <Directory Id='ProgramFilesFolder' Name='PFiles'>
            <Directory Id='MyDir' Name='Test Program'>
               <Component Id='MyComponent' Guid='12345678-1234-1234-1234-123456789012'>
                  <File Id='readme' Name='readme.txt' DiskId='1' Source='readme.txt' />
               </Component>
            </Directory>
         </Directory>
      </Directory>
 
      <Feature Id='MyFeature' Title='My 1st Feature' Level='1'>
         <ComponentRef Id='MyComponent' />
      </Feature>
   </Product>
</Wix>

编译,链接,然后安装那个 MSI后,你应该可以看到在你系统的"Program Files"下有个目录名叫"Test Program"。在那个"Test Program"下应该有你创建的"readme.txt"文件以及你输入的文字。最后别忘了卸载这个MSI,以便将来重新安装。

相信与否,这就是创建Windows Installer安装包的全部过程。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值