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