MsiAssembly 表
MsiAssembly 表指定Microsoft .NET Framework 程序集和 Win32 程序集的 Windows Installer 设置。 有关详细信息,请参阅 将程序集安装到全局程序集缓存 和 win32 程序集 安装。
在 Windows XP 上,Windows Installer 可以将 Win32 程序集安装为 并行程序集。 有关详细信息,请参阅 并行程序集 API。
Windows 2000: 不支持此功能。
MsiAssembly 表具有以下列。
列 | 类型 | 钥匙 | 空 |
---|---|---|---|
元件_ | 标识符 | Y | N |
特征_ | 标识符 | 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 程序集的值为 0(零)。
如果 Attributes 列为 NULL,安装程序会将程序集视为 .NET Framework 程序集。
言论
如果 MsiAssembly 表中至少有一个条目,则 InstallExecuteSequence 表 必须包含 MsiPublishAssemblies作,MsiUnpublishAssemblies作。
由于程序集在提交后无法回滚,因此 Windows Installer 使用双重安装过程。 程序集的接口是在 MsiPublishAssemblies作生成的安装作期间创建的。
在成功执行 InstallFinalize作之前,不会提交程序集。 这意味着,如果创作依赖于程序集的自定义作或资源,则必须在 InstallFinalize作之后对其进行排序。 例如,如果需要启动依赖于全局程序集缓存 (GAC)中的程序集的服务,则必须在 InstallFinalize作后计划该服务的启动。 这意味着不能使用 ServiceControl 表 启动服务,而必须使用在 InstallFinalize 之后排序的自定义作。
验证