2011-02-01 138 views

回答

2

正如克里斯画家指出MSI文件中,你可以看到正在发生的事情在基于微星表的内容安装的情况发生透​​明感This is one of the key benefits of MSI that you can find described here自定义表格扩展了此内置透明度以包含由它们中指定的操作提供的自定义操作。它们还允许重用自定义操作代码,因为操作不是硬编码的,而是在表格中指定。

虽然在一家大公司工作,我写了能够做几件非标MSI任务的自定义操作DLL如创建本地用户和组创建股除其他事项外组自定义权限。通过定义在自定义表格中应该做什么,我们可以完成我们需要做的事情,而无需在自定义操作中对任何内容进行硬编码一旦创建,用户创建的自定义操作可以创建在自定义表中指定的任何用户。

定制表在_Validation table中定义,以便为表格中的每列设置可接受的值范围和类型。还可以连接定制ICE验证规则以检测定制表中的错误。需要解析目录的自定义操作可以将自定义表中的外键添加到目录表中,以便能够解析安装目录。您还可以将外键添加到其他表格,包括其他自定义表格。

简而言之,自定义表格由自定义操作使用,并且在用于实现自定义操作的灵活性和重用时非常有效。然而,实施是一项重大努力。 The WiX toolkit使用大量的自定义表格来完成非标准的MSI任务,例如IIS安装。他们的源代码是开源的,并会告诉你如何编写由定制表提供的自定义操作。它涉及到相当多的MSI技术,例如排序和从客户端到服务器进程传递值(提升,延迟模式自定义操作),但所有这些都应该可以从WiX“借用” - 或者更好,使用WiX自己的现成的自定义操作。

如果您具备创建此功能的技能,我认为将您的创作与WiS社区分享将是非常有益的。这也将为您提供一批极具天赋的开发人员,帮助您追踪代码和实施中的任何错误。