UnregisterAssembly タスク

COM 相互運用のために、指定されたアセンブリの登録を解除します。 RegisterAssembly タスクとは逆の処理になります。

パラメーター

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

パラメーター 説明
Assemblies 省略可能な ITaskItem[] 型のパラメーターです。

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

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

このパラメーターが指定されている場合、AssembliesTypeLibFiles のパラメーターは無視されます。
TypeLibFiles 省略可能な ITaskItem[] 型の出力パラメーターです。

指定したアセンブリから指定したタイプ アセンブリを登録解除します。 注: このパラメーターは、タイプ ライブラリのファイル名がアセンブリ名と異なる場合にのみ必要です。

解説

アセンブリが存在していなくても、このタスクは正常に終了します。 存在しないアセンブリの登録を解除しようとした場合、タスクは警告を発行して正常終了します。 これは、アセンブリ登録をレジストリから削除することが、このタスクのジョブであるためです。 アセンブリが存在しない場合、アセンブリはレジストリに登録されていないため、タスクは正常に終了します。

上記のパラメーター以外に、このタスクは AppDomainIsolatedTaskExtension クラスからパラメーターを継承します。このクラス自体は、MarshalByRefObject クラスから継承されます。 MarshalByRefObject クラスは Task クラスと同じ機能を提供しますが、独自のアプリケーション ドメインでインスタンス化できます。

次の例では UnregisterAssembly タスクを使用して、OutputPathFileName のプロパティで指定されたパスにあるアセンブリ (存在する場合) を登録解除します。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <OutputPath>\Output\</OutputPath>
        <FileName>MyFile.dll</FileName>
    </PropertyGroup>
    <Target Name="UnregisterAssemblies">
        <UnregisterAssembly
            Condition="Exists('$(OutputPath)$(FileName)')"
            Assemblies="$(OutputPath)$(FileName)" />
    </Target>

</Project>

関連項目