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>

请参见

概念

MSBuild 任务

其他资源

MSBuild 任务参考