更改组件代码
指定安装组件时,包作者应按照将应用程序组织到组件中所述的组件组织的一般规则进行操作。 作者可能需要引入新组件或修改现有组件。 如果添加、移除或修改资源的操作有效地创建了新组件,还必须更改组件代码。
创建新组件
进行以下任何更改时,引入新组件并为其分配唯一的组件代码:
- 尚未通过测试证明与组件的先前版本兼容的任何更改。 在这种情况下,还必须更改组件中每个资源的名称或目标位置。
- 更改组件中任何文件、注册表项、快捷方式或其他资源的名称或目标位。 在这种情况下,还必须更改组件中每个资源的名称或目标位置。
- 在组件中添加或移除任何文件、注册表项、快捷方式或其他资源。 在这种情况下,还必须更改组件中每个资源的名称或目标位置。
- 将 32 位组件重新编译为 64 位组件。
引入新组件时,作者需要执行以下操作之一,确保该组件不会与任何现有组件冲突:
- 如果有任何资源可能由其他组件以相同的名称和目标位置安装,应更改这些资源的名称和目标位置。
- 否则,需要保证新组件永不安装到另一个组件(其包含使用通用名称和位置的资源)所在的同一文件夹中。 这包括采用相同文件名的文件的本地化版本。 有关详细信息,请参阅如果违反组件规则会怎么样?。
- 更改现有组件的组件代码时,还要更改组件中每个文件、注册表项、快捷方式和其他资源的名称或目标位置。
创建组件的新版本
为新版本的组件分配与另一个现有组件相同的组件代码。 仅当出现以下情况才可选择修改组件而不更改组件代码:
- 已通过测试证明对组件的更改向后兼容组件的所有先前版本。
- 作者可以保证新版本的组件永不安装在这类系统上:即,与以前版本的组件或需要以前版本的应用程序发生冲突。 有关详细信息,请参阅如果违反组件规则会怎么样?。
如果更改新版组件的组件代码会导致两个组件共用注册表值、文件或快捷方式等资源,则不得更改此组件代码。