自定义转换示例

此示例演示了如何使用自定义转换来禁用功能和添加新资源。

管理员可以使用自定义转换在 Feature 表的 Level 列中输入 0,从而永久禁用某个功能。 然后,即使用户使用 UI 或通过在命令行上将 ADDLOCAL 属性设置为 ALL 来选择完整安装,自定义转换的应用程序也会阻止安装和显示该功能。 有关安装级别的讨论,请参阅功能表INSTALLLEVEL 属性。

通过使用自定义转换添加一个或多个新组件,可以部署自定义应用程序所需的资源。 转换必须添加一个或多个新功能才能包含这些新组件。 有关部署资源(如文件、注册表项或快捷方式)时应遵循的规则,请参阅使用转换添加资源

此示例演示了如何创建转换以自定义安装示例中所述的应用程序的安装。 原始安装包安装示例应用程序的所有功能(包括“入口”功能),使用户能够查看 Red Park Arena 的入场信息。 某些用户组只需要提供事件计划信息的应用程序功能,而不需要“入口”功能。 这些组还需要获取特殊的电话列表。 因此,转换必须执行两项操作:1) 自定义安装,以便此组仅接收所需的应用程序功能;2) 提供新电话列表所需的资源。

适用于 Windows Installer 开发人员的 Windows SDK 组件中提供了此示例的最小用户界面示例,以 Uisample.msi 文件的形式。 如果你有 SDK,则可以访问重现示例安装包、用户界面和自定义转换所需的所有工具和数据。

自定义转换具有以下规范:

  • 自定义转换嵌入在 MNP2000.msi 文件中,以确保它始终可用于安装数据库。
  • 即使用户选择了完整安装类型,使用自定义转换安装 MNP2000.msi 也不会安装“入口”功能、“入口”功能的子功能或“入口”功能的任何组件。
  • 其他应用程序可能会共享“入口”功能的部分或全部组件。 这些应用程序的安装包可以将它们的所有组件安装在用户的计算机上。
  • 使用自定义转换删除 MNP2000.msi 不会删除已由其他应用程序安装的任何“入口”组件。
  • 使用自定义转换安装 MNP2000.msi 还会安装新的顶级功能 Phone_List 以及需要安装资源 Phone.txt 的新组件 Phone。 用户使用菜单目录中的快捷方式访问 Phone_List 功能。

继续