MsiAssembly 表
MsiAssembly 表指定 Microsoft .NET Framework 程序集和 Win32 程序集的Windows安装程序设置。 有关详细信息,请参阅 将程序集安装到全局程序集缓存 和 Win32 程序集的安装。
在 Windows XP 上,Windows Installer 可以将 Win32 程序集安装为并行程序集。 有关详细信息,请参阅 并行程序集 API。
Windows 2000:不支持此功能。
MsiAssembly 表包含以下列。
列 | 类型 | 密钥 | Nullable |
---|---|---|---|
Component_ | 标识符 | Y | N |
Feature_ | 标识符 | N | N |
File_Manifest | 标识符 | N | Y |
File_Application | 标识符 | N | Y |
属性 | 整数 | N | Y |
列
-
Component_
-
组件表中的键,指定包含此程序集的 Windows Installer 组件。
此字段中的值不得设置为 null。 组件表中的组件 KeyPath 字段不得为 null。
对于 Win32 程序集,组件 KeyPath 不能是File_Manifest中指定的清单文件。 清单可以是.NET Framework或策略程序集的键路径。
-
Feature_
-
功能表的键。
当程序集必须由功能安装安装时,Windows Installer 会安装此字段指向的功能。
-
File_Manifest
-
文件表中的外部键,指定包含.NET Framework程序集或 Win32 程序集的清单的文件。
对于 Win32 程序集,请勿将此文件指定为 组件表的 KeyPath 字段中的组件密钥路径文件。
-
File_Application
-
若要在专用位置安装程序集,请在此字段中输入程序集组件的密钥路径文件。
这是 组件表的 KeyPath 字段中显示的值。 然后,安装程序可以将程序集安装到 目录表中指定的组件的目录结构。 如果要将程序集安装到全局程序集缓存中,则此字段必须为 null。
-
属性
-
输入 Win32 程序集的 1 (一个) 的值。 输入.NET Framework程序集的零 (零) 的值。
如果 Attributes 列为 NULL,安装程序会将程序集视为.NET Framework程序集。
备注
如果 MsiAssembly 表中至少有一个条目, InstallExecuteSequence 表 必须包含 MsiPublishAssemblies 操作和 MsiUnpublishAssemblies 操作。
由于程序集提交后无法回滚,因此Windows安装程序使用双重安装过程。 在 MsiPublishAssemblies 操作生成的安装操作期间,会创建程序集的接口。
在 成功执行 InstallFinalize 操作之前,不会提交程序集。 这意味着,如果创作依赖于程序集的自定义操作或资源,则必须在 InstallFinalize 操作之后对其进行排序。 例如,如果需要启动依赖于全局程序集缓存 (GAC) 中的程序集的服务,则必须在 InstallFinalize 操作之后计划该服务的启动。 这意味着不能使用 ServiceControl 表 启动服务,而必须使用在 InstallFinalize 之后排序的自定义操作。
验证