技术开发 频道

使用VS2010和WiX 3.0开发托管自定义操作

  【IT168 技术文档】Visual Studio 2010将会配备WiX 3.0。相对于当前使用的Visual Studio安装项目,Wix更加灵活。而且它支持托管代码和Windows Installer进行交互。程序员可以使用C#、VB.NET或其他任何.NET编程语言。它也支持调试,这个曾让安装创建者头痛的问题。

  通过WiX的发布工具基础(Deployment Tools Foundation,DTF)来支持托管自定义操作(CA's),开发人员不再需要使用C++或者脚本语言(VB Script或JavaScrip)编写CA's。DTF可以使用msi.dll中的托管.NET包装,让用户访问完整的MSI API。用C#编写的CA方法如下所示:

[CustomAction]
public static ActionResult CustomActionName(Session session)
{
...
}

  CustomAction特性用于标识该方法为CA。Session对象让开发人员访问Windows Installer API,它可以查询MSI数据库、访问属性等等。这和过去用脚本和C++代码编写的CA’s非常类似。

  要在WiX中使用前面的CA,必须注册WiX项目,代码如下所示:

<CustomAction Id="someID" BinaryKey="someKey" DllEntry="customActionName" Execute="immediate"  Return="check" />
<Binary Id="someKey" SourceFile="someCustomAction.CA.dll" />
UISequence中执行CA,如下所示:

<InstallUISequence>
<Custom Action="someID" After="CostFinalize" Overridable="yes">NOT Installed</Custom>
</InstallUISequence>

  WiX 3.0也给所有的WiX用户提供系列默认操作,事实上它们都是CA's。下面列举部分可用的默认操作:

  IIS
  Com+
  MSMQ
  SQL
  WiX 3.0文档中有详细的信息.

0
相关文章