ICEM12
ICEM12 验证以下事实:在 ModuleSequence 表中,标准操作具有序列号,自定义操作具有 BaseAction 和 After 值。
Windows Installer 2.0 SDK 及更高版本中提供的 Mergemod.cub 文件中提供了此 ICEM。 有关详细信息,请参阅适用于 Windows Installer 开发人员的 Windows SDK 组件。
结果
在以下情况下,ICEM12 会发布错误:
- 它发现模块包含没有序列号的标准操作。
- 它发现标准操作在 ModuleAdminUISequence 表、ModuleAdminExecuteSequence 表、ModuleAdvtExecuteSequence 表、ModuleInstallUISequence 表或 ModuleInstallExecuteSequence 表的 BaseAction 或 After 字段中输入了值。
- 它发现模块包含一个自定义操作,但没有在 ModuleAdminUISequence 表、ModuleAdminExecuteSequence 表、ModuleAdvtExecuteSequence 表、ModuleInstallUISequence 表或 ModuleInstallExecuteSequence 表的 Sequence、BaseAction 或 After 字段中输入任何值。
如果 ICEM12 发现自定义操作具有指定的序列号,但 BaseAction 或 After 字段中没有值,则会发布警告。
请注意,在 CustomAction 表中发现的所有操作都会被视为自定义操作。 所有其他操作都会被视为标准操作。
示例
ICEM12 为包含如下所示数据库条目的模块发布以下错误和警告消息:
Error. Custom actions should use the BaseAction and After fields and not use the
Sequence field in the Module Sequence tables. The custom action 'Action1' uses the Sequence field
and does not use the BaseAction and After fields in the ModuleInstallExecuteSequence table.
Error. Custom actions should not leave the Sequence, BaseAction, and After fields
of the Module Sequence tables all empty. The custom action 'Action3' leaves the Sequence,
BaseAction, and After fields empty in the ModuleAdminExecuteSequence table.
Error. Standard actions should not use the BaseAction and After fields in Module
Sequence tables. The standard action 'Action2' has a values entered in the BaseAction
or After fields of the ModuleAdminExecuteSequence table.
Error. Standard actions must have a entry in the Sequence field of Module Sequence
tables. The standard action 'Action2' does not have a Sequence value in the
ModuleExecuteSequence table.
操作 | 类型 | 源 | 目标 |
---|---|---|---|
Action1 | 30 | source1 | target1 |
Action3 | 30 | source3 | target3 |
操作 | 序列 | BaseAction | 之后 | 条件 |
---|---|---|---|---|
Action2 | Action1 | 1 | 是 | |
Action3 | true |
操作 | 序列 | BaseAction | 之后 | 条件 |
---|---|---|---|---|
Action1 | 1 | 是 |
若要修复这些错误,请尝试以下操作:
- 删除自定义操作 Action1 的序列号,改用 BaseAction 和 After 字段。
- 在自定义操作 Action3 的 Sequence、BaseAction 或 After 字段中输入值。 将标准操作 Action2 的 BaseAction 和 After 字段留空。
- 对于标准操作 Action2,不要将 Sequence 字段留空。
相关主题