Using the Server Custom Actions

wix工具包包括了一个用户定制的库。该库的核心是对服务器的用户化设置。服务器定制扩展了MSI可安装网站、共享文件和用户帐号等的整套资源。这些定制正确建立组件和资源的关联,遵照所有规则来正确安装、卸载和回滚相关联的部分组件的安装或者卸载。本文将举例概述这些应用。

本文假设读者已经理解MSI用户定制的类型,并已经阅读了"WiX Overview" 和 "Writing in WiX"。

Server Custom Action building blocks

scasched.dll, scaexec.dll 和 sca.wixlib随wix工具包一起发布。这两个DLL文件导出服务器定制功能所需的全部接口。当你创建一个使用服务器定制功能的MSI安装包时,他们在MSI的Binary表的结尾。sca.wixlib包含一系列wix fragments,你可以通过链接来确保所有的错误消息、定制记录以及二进制文件记录被链接到你最终的MSI中。

将服务器定制功能加入到MSI中的最简单的方法,是拷贝sca.wixlib和两个DLL(scasched.dll and scaexec.dll)到你的编译环境的路径下。该路径在哪并不重要,重要的是wixlib和两个DLL在同一路径下。当你用light.exe链接MSI时,你只需在要链接的wixobjs 和 wixlibs列表中包含sca.wixlib的全路径。

Basic Example
首先让我们做一个练习,当MSI安装时创建一个用户帐号。

<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
    <Product Id='PutGuidHere' Name='TestUserProduct' Language='1033' Version='0.0.0.0'>
        <Package Id='PUT-GUID-HERE' Description='Test User Package' InstallerVersion='200' Compressed='yes' />
            <Directory Id='TARGETDIR' Name='SourceDir'>
                <Component Id='TestUserProductComponent' Guid='PutGuidHere'>
                    <User Id='TEST_USER1' Name='testName1' Password='pa$$word'/>
                </Component>
        </Directory>

        <Feature Id='TestUserProductFeature' Title='Test User Product Feature' Level='1'>
            <ComponentRef Id='TestUserProductComponent' />
        </Feature>
    </Product>
</Wix>

这个简单范例将在目标机上创建一个新的用户,名为"testName1",密码为"pa$$word"。为了编译这个NSI,首先将代码拷贝到文件中,记着将"PUT-GUID-HERE"更换成实际的GUID,然后运行"candle.exe yourfile.wxs"编译,运行'light.exe yourfile.msi yourfile.wixout sca.wixlib'链接(sca.wixlib前加全路径)。现在用Orca打开生成的msi文件,查看Error表和Binary表,你会发现所有用户管理的数据都被连接到了MSI中。这之所以会产生,是因为你已经完成了两件关键的事。首先你在<Component/>下使用了<User/>元素,这意味着一个用户将作为MSI的一部分被安装。其次,你连接了sca.wixlib,编译器确保在sca.wixlib中的一系列fragments中,只有与wxs中使用元素关联的数据才被连接到MSI中。

The server custom action elements

在上面的例子中,你学习了通过在WiX中使用<User/>,与sca.wixlib连接后,错误消息和binary表的数据就自动添加完成。当你使用如<User/>这样的特定元素时,WiX编译器支持自动引用sca.wixlib中的对应的元素。如前所述,服务器定制增加了安装许多新类型资源的功能。每一个资源类型有一个或多个元素允许和MSI一起被安装。如果你使用sca.wixlib,你唯一需要知道的是与你想安装资源相符的符号。下面列出了一些服务器定制支持的资源类型和控制其安装的元素。

Web Sites - <WebSite/>
Web Applications - <WebApplication/>
Certificates - <Certificate/>
SQL databases - <SqlDatabase/>
SQL scripts - <SqlScript/>
SQL strings - <SqlString/>
Users - <User/>
FileShares - <FileShare/>
Perfmon Counter registration - <PerfCounter/>

通过在你的wix文件中使用表中的合适元素以及链接sca.wixlib,你可以正确使用wix server custom actions。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值