UnregisterAssembly-Aufgabe

Hebt die Registrierung der angegebenen Assemblys für COM-Interop-Zwecke auf. Ihr Zweck ist dem der RegisterAssembly-Aufgabe entgegengesetzt.

Parameter

In der folgenden Tabelle werden die Parameter der UnregisterAssembly-Aufgabe beschrieben.

Parameter

Beschreibungen

Assemblies

Optionaler ITaskItem[]-Parameter.

Gibt die Assemblys an, deren Registrierung aufgehoben werden soll.

AssemblyListFile

Optionaler ITaskItem-Parameter.

Enthält Informationen über den Zustand zwischen der RegisterAssembly-Aufgabe und der UnregisterAssembly-Aufgabe. Dadurch wird verhindert, dass die Aufgabe versucht, die Registrierung einer Assembly aufzuheben, die in der RegisterAssembly-Aufgabe nicht registriert werden konnte.

Wenn dieser Parameter angegeben wird, werden der Assemblies-Parameter und der TypeLibFiles-Parameter ignoriert.

TypeLibFiles

Optionaler ITaskItem[]-Ausgabeparameter.

Hebt die Registrierung der angegebenen Typbibliothek in der angegebenen Assembly auf.

HinweisHinweis
Dieser Parameter ist nur erforderlich, wenn der Name der Typbibliotheksdatei nicht mit dem Assemblynamen übereinstimmt.

Hinweise

Für eine erfolgreiche Ausführung dieser Aufgabe muss die Assembly nicht unbedingt vorhanden sein. Wenn Sie versuchen, die Registrierung einer nicht vorhandenen Assembly aufzuheben, wird die Aufgabe erfolgreich ausgeführt und eine Warnung ausgegeben. Der Zweck dieser Aufgabe ist es nämlich, die Assemblyregistrierung aus der Registrierung zu entfernen, und wenn die Assembly nicht vorhanden ist, ist sie auch nicht in der Registrierung enthalten, weshalb die Aufgabe erfolgreich ausgeführt wird.

Framework64/<Version>/UnRegisterAssemblyTask kann eine Bibliothek von COM-Objekten nicht auflösen, die als 32-Bit-Komponenten registriert wurde. Framework/<Version>/UnRegisterAssemblyTask kann eine Bibliothek von COM-Objekten nicht auflösen, die als 64-Bit-Komponenten registriert wurde.

Wenn Sie zum Beispiel die Bibliothek ClassLibrary1 mit COM-Objekten als 32-Bit-Komponenten auf einem 64-Bit-Computer registrieren, Visual Studio ausführen und das Ziel in x64 ändern, dann schlägt der Build mit dem folgenden Fehler fehl:

ClassLibrary1.dll is not a valid assembly

Zusätzlich zu den oben aufgeführten Parametern erbt diese Aufgabe Parameter von der AppDomainIsolatedTaskExtension-Klasse, die selbst von der MarshalByRefObject-Klasse erbt. Die MarshalByRefObject-Klasse stellt die gleichen Funktionen wie die Task-Klasse bereit, kann jedoch in einer eigenen Anwendungsdomäne instanziiert werden kann.

Beispiel

Im folgenden Beispiel wird mithilfe der UnregisterAssembly-Aufgabe die Registrierung der Assembly aufgehoben, die sich möglicherweise in dem von der OutputPath-Eigenschaft und der FileName-Eigenschaft angegebenen Pfad befindet.

<Project xmlns="https://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>

Siehe auch

Referenz

RegisterAssembly-Aufgabe

Konzepte

MSBuild-Aufgaben

Weitere Ressourcen

Referenz zu MSBuild-Aufgaben