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 之后排序的自定义操作。

验证

ICE03
ICE06
ICE32
ICE66
ICE83
ICE94