RegisterAssembly タスク

指定されたアセンブリに含まれるメタデータを読み込み、必要なエントリをレジストリに追加します。このため、COM クライアントは特別な処理を必要とすることなく .NET Framework クラスを作成できます。 このタスクの動作は、完全に同じではありませんが、Regasm.exe (アセンブリ登録ツール) の動作に似ています。

パラメーター

RegisterAssembly タスクのパラメーターの説明を次の表に示します。

パラメーター 説明
Assemblies 必須の ITaskItem[] 型のパラメーターです。

COM に登録するアセンブリを指定します。
AssemblyListFile 省略可能な ITaskItem 型のパラメーターです。

RegisterAssembly タスクと UnregisterAssembly タスクの間の状態に関する情報が含まれます。 この情報により、RegisterAssembly タスクで登録に失敗したアセンブリの登録を UnregisterAssembly タスクが解除しないようにできます。
CreateCodeBase 省略可能な Boolean 型のパラメーターです。

true に設定すると、レジストリに Codebase エントリが作成されます。Codebase エントリは、グローバル アセンブリ キャッシュにインストールされていないアセンブリのファイル パスを指定するものです。 登録しようとしているアセンブリを、後でグローバル アセンブリ キャッシュにインストールする場合は、このオプションを指定する必要はありません。
TypeLibFiles 省略可能な ITaskItem[] 型の出力パラメーターです。

指定したアセンブリから生成するタイプ ライブラリを指定します。 生成されるタイプ ライブラリには、アセンブリ内で定義されているアクセス可能なタイプが格納されます。 タイプ ライブラリは、以下のいずれかの条件を満たす場合にだけ作成されます。

- 指定の場所に、同じ名前のタイプ ライブラリが存在しない。
- タイプ ライブラリが存在するが、渡されたアセンブリよりも古い。

渡されたアセンブリよりもタイプ ライブラリの方が新しい場合、新しいタイプ ライブラリは作成されませんが、アセンブリの登録は行われます。

このパラメーターを指定する場合には、Assemblies パラメーターに指定したアイテムと同じ数のアイテムを指定する必要があります。数が異なると、タスクは失敗します。 指定しなかった場合には、既定でアセンブリの名前が使用され、アイテムの拡張子は .tlb に変更されます。

解説

上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、Task クラスから継承されます。 これらの追加のパラメーターの一覧とその説明については、「TaskExtension Base Class」を参照してください。

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>

関連項目