技术开发 频道

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

  下面的例子显示了IIS中创建新Web站点的Wix源代码:

<iis:WebSite Id='DefaultWebSite' Description='Default Web Site'>
<iis:WebAddress Id='AllUnassigned' Port='80' />
</iis:WebSite>

  很多开发人员都询问Windows Installer团队为什么不支持托管自定义操作。Wix的开发组长Rob Mensching解释道:

  一年前,我、Carolyn (MSI Dev经理)和两位Windows架构师讨论过托管代码自定义操作,并把最终的结果发布到博客上。博文提出了两个问题。第一个是技术问题,即托管代码自定义操作需要运行在单独的线程中。第二个问题是Windows平台制定了减少自定义操作的战略目标。我发布那篇博文的时候,DTF就是面临着这两个问题。发布博文的一个月以后,Jason解决了当中的技术难题,通过实现进程间通讯机制把托管自定义操作转移到单独的进程中,但仍可以和Windows Installer通讯。

  2009版的InstallShield也支持自定义托管操作,针对Rob提出的两个问题有着不同的解决方案,但是不支持调试。Christopher Painter谈到他认为DTF更好用的原因:

  通过合适的CLR版本,DTF解决了分离msi进程的难题
  MakeSfxCa在依赖性方面更加灵活和直观
  从C#开发人员的角度来说,MSI互操作对象模型更好用

  可对主进程进行调试
  开发源代码更易于发现问题和解决问题,尽管需要我们自己动手
没有使用上的限制。它有多种使用方式,我们可以建立和使用自定义操作,包括集成到InstallShield(这正是我在尝试的方式)。
WiX 3.0即将发布。当前仍需修正一些Bug ,同时等待Visual Studio小组以便和Visual Studio的附加程序Votive进行集成。最新的版本是3.0.5006.0,我们也可以下载每周编译版本 。

0
相关文章