RegisterAssembly 任务
读取指定程序集内的元数据并向注册表添加必要的项,使 COM 客户端能够透明地创建 .NET Framework 类。 此任务的行为与 Regasm.exe(程序集注册工具) 的行为类似,但并不完全相同。
参数
下表描述了 RegisterAssembly 任务的参数。
Parameter |
说明 |
---|---|
Assemblies |
必选 ITaskItem[] 参数。 指定要向 COM 注册的程序集。 |
AssemblyListFile |
可选 ITaskItem 参数。 包含关于 RegisterAssembly 任务和 UnregisterAssembly 任务之间的状态的信息。 这样可防止 UnregisterAssembly 任务尝试注销未能在 RegisterAssembly 任务中注册的程序集。 |
CreateCodeBase |
可选 Boolean 参数。 如果为 true,则在注册表中创建基本代码项,从而为全局程序集缓存中未安装的程序集指定文件路径。 如果随后要安装正在注册到全局程序集缓存中的程序集,则不应指定此选项。 |
TypeLibFiles |
可选 ITaskItem[] 输出参数。 指定要基于指定程序集生成的类型库。 生成的类型库包含程序集内定义的可访问类型的定义。 只有当下面的某个条件为 true 时,才生成该类型库:
如果该类型库比正在传递的程序集新,则不会创建新的类型库,但仍会注册该程序集。 如果指定了此参数,则它必须具有与 Assemblies 参数相同的项数,否则任务将失败。 如果未指定任何输入,则任务将默认使用程序集的名称,并将项的扩展名更改为 .tlb。 |
备注
除了上面列出的参数,此任务还将从 TaskExtension 类继承参数,此类本身从 Task 类继承。 有关这些附加参数及其说明的列表,请参见 TaskExtension 基类。
示例
下面的示例使用 RegisterAssembly 任务来注册 MyAssemblies 项集合指定的程序集。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MyAssemblies Include="MyAssembly.dll" />
<ItemGroup>
<Target Name="RegisterAssemblies">
<RegisterAssembly
Assemblies="@(MyAssemblies)" >
</Target>
</Project>