MsiAssembly 表

MsiAssembly 表指定 Microsoft .NET Framework 程序集和 Win32 程序集的 Windows Installer 设置。 有关详细信息,请参阅将程序集安装到全局程序集缓存安装 Win32 程序集

在 Windows XP 上,Windows Installer 可以将 Win32 程序集作为并行程序集安装。 有关详细信息,请参阅并行程序集 API

Windows 2000:不支持此功能。

MsiAssembly 表包含以下列。

类型 密钥 Nullable
Component_ Identifier Y N
Feature_ Identifier N N
File_Manifest Identifier N Y
File_Application Identifier N Y
特性 整数 N Y

 

Component_

Component 表中的键,用于指定包含此程序集的 Windows Installer 组件。

此字段中的值不能设置为 null。 Component 表中的组件 KeyPath 字段不能为 null。

对于 Win32 程序集,组件 KeyPath 不能是 File_Manifest 中指定的清单文件。 清单可以是 .NET Framework 或策略程序集的关键路径。

Feature_

Feature 表中的键。

必须通过功能安装来安装程序集时,Windows Installer 将安装此字段指向的功能。

File_Manifest

File 表中的外部键,用于指定包含 .NET Framework 程序集或 Win32 程序集清单的文件。

对于 Win32 程序集,请不要在 Component 表的 KeyPath 字段中将此文件指定为组件关键路径文件。

File_Application

若要在专用位置安装程序集,请在此字段中输入程序集组件的关键路径文件。

这是显示在 Component 表的 KeyPath 字段中的值。 然后,安装程序可以将程序集安装到 Directory 表中指定的组件的目录结构。 如果要将程序集安装到全局程序集缓存,则此字段必须为 null。

Attributes

为 Win32 程序集输入值 1(一)。 为 .NET Framework 程序集输入值 0(零)。

如果 Attributes 列为 NULL,则安装程序会将该程序集视为 .NET Framework 程序集。

备注

如果 MsiAssembly 表中至少包含一个条目,则 InstallExecuteSequence 表必须包含 MsiPublishAssemblies 操作MsiUnpublishAssemblies 操作

由于程序集在提交后无法回滚,因此 Windows Installer 使用两步安装过程。 程序集的接口是在执行 MsiPublishAssemblies 操作生成的安装操作期间创建的。

只有在成功执行 InstallFinalize 操作之后才会提交程序集。 这意味着,如果你创建依赖于程序集的自定义操作或资源,则必须将它排序在 InstallFinalize 操作之后。 例如,如果需要启动依赖于全局程序集缓存 (GAC) 中的程序集的服务,则必须计划在 InstallFinalize 操作之后启动该服务。 这意味着,不能使用 ServiceControl 表启动该服务,而必须使用排序在 InstallFinalize 之后的自定义操作。

验证

ICE03
ICE06
ICE32
ICE66
ICE83
ICE94