Freigeben über


Hinzufügen oder Entfernen von Verweisen mithilfe des Verweis-Managers

Sie können das Dialogfeld "Verweis-Manager" verwenden, um Verweise auf Komponenten hinzuzufügen und zu verwalten, die Sie, Microsoft oder ein anderes Unternehmen entwickelt haben. Wenn Sie eine universelle Windows-App entwickeln, verweist Ihr Projekt automatisch auf alle korrekten Windows SDK-DLLs. Wenn Sie ein .NET-Projekt erstellen, verweist Ihr Projekt automatisch auf die benötigten Komponenten, z. B. das .NET SDK, sie müssen jedoch Verweise hinzufügen, während Sie Funktionen hinzufügen. Einige .NET-APIs werden in Komponenten verfügbar gemacht, die Sie manuell hinzufügen müssen. Verweise auf COM-Komponenten oder benutzerdefinierte Komponenten müssen manuell hinzugefügt werden.

Wenn ein NuGet-Paket für die Bibliothek verfügbar ist, auf die Sie verweisen, verwenden Sie den NuGet-Paket-Manager. Siehe Installieren und Verwenden eines NuGet-Pakets.

Dialogfeld "Verweis-Manager"

Im Dialogfeld "Verweis-Manager" werden je nach Projekttyp unterschiedliche Kategorien auf der linken Seite angezeigt:

  • Assemblys mit den Untergruppen Framework und Erweiterungen (nur.NET Framework)

  • COM- listet alle COM-Komponenten auf, die für verweise verfügbar sind.

  • Projekte

  • Freigegebene Projekte

  • Windows mit den Untergruppen Core und Erweiterungen Sie können die Verweise im Windows SDK oder Erweiterungs-SDKs mithilfe des Objektbrowserserkunden.

  • Durchsuchen mit der Untergruppe Aktuell

    Anmerkung

    Beim Entwickeln von C++-Projekten wird die Option Durchsuchen im Dialogfeld „Verweis-Manager“ möglicherweise nicht angezeigt.

Hinzufügen eines Verweises

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten Verweise oder Abhängigkeiten, und wählen Sie dann im Kontextmenü Projektverweis hinzufügen, Verweis auf freigegebenes Projekt hinzufügen oder COM-Verweis hinzufügen aus. (Sie können auch mit der rechten Maustaste auf den Projektknoten klicken und im Flyoutmenü Hinzufügen auswählen, um aus diesen Optionen auszuwählen.)

    Screenshot: Optionen zum Hinzufügen von Verweisen im Kontextmenü des Projektmappen-Explorers

    Der Verweis-Manager wird mit den verfügbaren Verweisen nach Gruppe geöffnet.

    Screenshot des Dialogfelds

  2. Wählen Sie einen Verweis aus, der hinzugefügt werden soll, und klicken Sie dann auf OK.

    Anmerkung

    Wenn der gesuchte Verweis nicht angezeigt wird, wählen Sie Durchsuchen aus, um den Verweis zu finden. (Wenn Sie C++-Projekte entwickeln, wird möglicherweise keine Suchoption angezeigt.)

Registerkarte "Assemblys" (nur .NET Framework)

Anmerkung

Die Registerkarte Assemblys ist für Projekte mit .NET Core oder .NET 5 und höher nicht verfügbar. Wählen Sie Durchsuchen Sie aus, um eine Assembly im Dateisystem zu suchen und als Verweis hinzuzufügen. Um die referenzierten Assemblys in einem Projekt anzuzeigen, erweitern Sie den Knoten Abhängigkeiten im Projekt. Im Knoten Abhängigkeiten können Sie mit der rechten Maustaste klicken, um Projektverweise hinzuzufügen oder zu entfernen, Assemblys im Knoten Assemblys anzuzeigen oder zu entfernen oder den NuGet-Paketbrowser zu öffnen, um NuGet-Pakete zu verwalten. Weitere Informationen finden Sie unter Installieren und Verwalten von Paketen in Visual Studio mithilfe des NuGet-Paket-Managers in der NuGet-Dokumentation.

Bei .NET Framework-Projekten werden auf der Registerkarte Assemblys alle .NET-Assemblys aufgelistet, die für verweise verfügbar sind. Auf der Registerkarte Assemblys werden keine Assemblys aus dem globalen Assemblycache (GAC) aufgeführt, da Assemblys in der GAC Teil der Laufzeitumgebung sind. Wenn Sie eine Anwendung bereitstellen oder kopieren, die einen Verweis auf eine Assembly enthält, die im GAC registriert ist, wird die Assembly nicht mit der Anwendung bereitgestellt oder kopiert, unabhängig von der Einstellung Lokal kopieren. Weitere Informationen finden Sie unter Verwalten von Verweisen in einem Projekt.

Wenn Sie manuell einen Verweis auf einen der EnvDTE-Namespaces hinzufügen (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90aoder EnvDTE100), legen Sie die eigenschaft Embed Interop Types des Verweises auf False im Fenster Eigenschaften fest. Wenn Sie diese Eigenschaft auf True festlegen, können Buildprobleme aufgrund bestimmter EnvDTE-Eigenschaften auftreten, die nicht eingebettet werden können.

Alle Desktopprojekte enthalten einen impliziten Verweis auf mscorlib. Visual Basic-Projekte enthalten einen impliziten Verweis auf Microsoft.VisualBasic. Alle Projekte enthalten einen impliziten Verweis auf System.Core, auch wenn sie aus der Liste der Verweise entfernt wird.

Die Registerkarte Assemblys besteht aus zwei Unterregisterkarten:

  1. Framework- listet alle Assemblys auf, die das zielorientierte Framework bilden.

    Für Projekte, die nicht auf .NET Core oder die universelle Windows-Plattform abzielen, listet die Framework-Registerkarte Assemblys des anvisierten Frameworks auf. Der Benutzer muss verweise hinzufügen, die von der Anwendung benötigt werden.

    Universelle Windows-Projekte enthalten standardmäßig Verweise auf alle Assemblys im Zielframework. In verwalteten Projekten gibt ein schreibgeschützter Knoten unter dem Ordner Verweise im Projektmappen-Explorer den Verweis auf das gesamte Framework an. Dementsprechend listet die Registerkarte Framework keine Assemblys aus dem Framework auf und zeigt stattdessen die folgende Meldung an: "Auf alle Framework-Assemblys wird bereits verwiesen. Verwenden Sie den Objektbrowser, um die Verweise im Framework zu erkunden."

  2. Erweiterungen listet alle Assemblys auf, die externe Anbieter von Komponenten und Steuerelementen entwickelt haben, um das zielorientierte Framework zu erweitern. Je nach Zweck der Benutzeranwendung benötigen sie möglicherweise diese Assemblys.

    Erweiterungen werden ausgefüllt, indem die Assemblys aufgelistet werden, die unter den folgenden Speicherorten registriert sind:

    32-Bit-Computer:

    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    64-Bit-Computer:

    • HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    Und ältere Versionen des [Target Framework Identifier]

    Wenn ein Projekt beispielsweise auf .NET Framework 4 auf einem 32-Bit-Computer ausgerichtet ist, enumeriert Erweiterungen Assemblys, die unter \Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersExund \Microsoft.NETFramework\v2.0\AssemblyFoldersExregistriert sind.

Abhängig von der Frameworkversion Ihres Projekts werden einige Komponenten in der Liste möglicherweise nicht angezeigt. Diese Situation kann unter den folgenden Bedingungen auftreten:

  • Eine Komponente, die eine aktuelle Frameworkversion verwendet, ist nicht mit einem Projekt kompatibel, das auf eine frühere Version ausgerichtet ist.

    Informationen zum Ändern der Zielframeworkversion für ein Projekt finden Sie unter Framework-Zieladressierungsübersicht.

  • Eine Komponente, die eine ältere Version von .NET Framework verwendet, ist nicht mit einem Projekt kompatibel, das auf ein neueres .NET Framework ausgerichtet ist.

Weitere Informationen zur Versionskompatibilität zwischen .NET Framework-Versionen finden Sie unter Versionskompatibilität.

Vermeiden Sie das Hinzufügen von Dateiverweisen zu Ausgaben eines anderen Projekts in derselben Lösung, da dies zu Kompilierungsfehlern führen kann. Erstellen Sie Verweise zwischen Projekten stattdessen im Dialogfeld Verweis hinzufügen auf der Registerkarte Projekte. Diese Vorgehensweise erleichtert die Teamentwicklung, indem eine bessere Verwaltung der Klassenbibliotheken ermöglicht wird, die Sie in Ihren Projekten erstellen. Weitere Informationen finden Sie unter Problembehandlung bei fehlerhaften Verweisen.

Anmerkung

Eine Dateireferenz anstelle eines Projektverweises wird erstellt, wenn die Zielframeworkversion eines Projekts .NET Framework 4.5 oder höher ist und die Zielversion des anderen Projekts .NET Framework 2, 3, 3.5 oder 4.0 ist. Weitere Informationen zu .NET, .NET Framework und .NET Core finden Sie unter Was ist .NET (und .NET Core).

So zeigen Sie eine Assembly im Dialogfeld "Verweis hinzufügen" an

  • Verschieben oder kopieren Sie die Assembly an einen der folgenden Speicherorte:

    • Das aktuelle Projektverzeichnis. (Sie können die Assemblys über die Registerkarte Durchsuchen suchen.)

    • Andere Projektverzeichnisse in der gleichen Projektmappe. (Sie finden diese Assemblys mithilfe der Registerkarte Projekte.)

    -oder-

  • Legen Sie einen Registrierungsschlüssel fest, der den Speicherort der anzuzeigenden Assemblys angibt:

    Fügen Sie für ein 32-Bit-Betriebssystem einen der folgenden Registrierungsschlüssel hinzu.

    • [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    Fügen Sie für ein 64-Bit-Betriebssystem einen der folgenden Registrierungsschlüssel in einer 32-Bit-Registrierungsstruktur hinzu.

    • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    <VersionMinimum> ist die niedrigste geltende Frameworkversion. Wenn <VersionMinimum> Version 3.0 ist, gelten in AssemblyFoldersEx angegebene Ordner für Projekte mit der Zielversion .NET Framework 3.0 und höher.

    <AssemblyLocation> ist das Verzeichnis der Assemblys, die Sie im Dialogfeld Verweis hinzufügen anzeigen möchten, z. B. C:\MyAssemblies.

    Indem der Registrierungsschlüssel unter dem Knoten HKEY_LOCAL_MACHINE erstellt wird, können die Assemblys am angegebenen Speicherort für alle Benutzenden im Dialogfeld Verweis hinzufügen angezeigt werden. Das Erstellen des Registrierungsschlüssels unter dem Knoten HKEY_CURRENT_USER wirkt sich nur auf die Einstellung für den aktuellen Benutzer aus.

    Öffnen Sie das Dialogfeld Verweis hinzufügen erneut. Die Assemblys sollten auf der Registerkarte .NET angezeigt werden. Wenn dies nicht der Fall ist, stellen Sie sicher, dass sich die Assemblys im angegebenen AssemblyLocation- Verzeichnis befinden, starten Sie Visual Studio neu, und versuchen Sie es erneut.

Registerkarte "Projekte"

Auf der Registerkarte Projekte sind alle kompatiblen Projekte innerhalb der aktuellen Projektmappe auf der Unterregisterkarte Projektmappe aufgeführt.

Ein Projekt kann auf ein anderes Projekt verweisen, das auf eine andere Frameworkversion ausgerichtet ist. Sie können beispielsweise ein Projekt erstellen, das auf .NET 8.0 ausgerichtet ist, aber auf eine Assembly verweist, die für .NET 6.0 erstellt wurde. Das .NET 6.0-Projekt kann jedoch nicht auf ein .NET Framework 8.0-Projekt verweisen. Weitere Informationen finden Sie unter Framework-Zieladressierungsübersicht.

Registerkarte „Freigegebene Projekte“

Fügen Sie auf der Registerkarte Freigegebene Projekte im Dialogfeld "Verweis-Manager" einen Verweis auf ein freigegebenes Projekt hinzu. Mit freigegebenen Projekten können Sie allgemeinen Code schreiben, auf den von vielen verschiedenen Anwendungsprojekten verwiesen wird.

Registerkarte „Universelles Windows“

Die Registerkarte Universelles Windows führt alle SDKs auf, die für Plattformen gelten, auf denen Windows-Betriebssysteme ausgeführt werden. Diese Registerkarte enthält zwei Untergruppen: Core und Erweiterungen.

Kernuntergruppe

Universelle Windows-App-Projekte weisen standardmäßig einen Verweis auf das Universelle Windows SDK auf. Entsprechend werden in der Untergruppe Core im Verweis-Manager keine der Assemblys aus dem SDK „Universelles Windows“ aufgelistet.

Untergruppe "Erweiterungen"

Erweiterungen listet die Benutzer-SDKs auf, die die zielorientierte Windows-Plattform erweitern.

Ein SDK ist eine Sammlung von Dateien, die Visual Studio als einzelne Komponente behandelt. Auf der Registerkarte Erweiterungen werden SDKs, die für das Projekt gelten, aus dem das Dialogfeld "Verweis-Manager" aufgerufen wurde, als einzelne Einträge aufgeführt. Wenn sie einem Projekt hinzugefügt werden, werden alle SDK-Inhalte von Visual Studio genutzt, sodass der Benutzer keine weiteren Aktionen ausführen muss, um die SDK-Inhalte in IntelliSense, Toolbox, Designern, Objektbrowser, Build, Bereitstellung, Debuggen und Verpacken zu nutzen.

Informationen zum Anzeigen Ihres SDK auf der Registerkarte Erweiterungen finden Sie unter Create a Software Development Kit.

Anmerkung

Wenn ein Projekt auf ein SDK verweist, das von einem anderen SDK abhängt, verwendet Visual Studio das zweite SDK nicht, es sei denn, Sie fügen manuell einen Verweis auf das zweite SDK hinzu. Wenn Sie ein SDK auf der Registerkarte Erweiterungen auswählen, hilft Ihnen das Dialogfeld "Verweis-Manager", SDK-Abhängigkeiten zu identifizieren, indem Sie alle Abhängigkeiten im Detailbereich auflisten.

Wenn ein Projekttyp Keine Erweiterungen unterstützt, wird diese Registerkarte nicht im Dialogfeld "Verweis-Manager" angezeigt.

Registerkarte „COM“

Auf der Registerkarte COM- sind alle COM-Komponenten aufgeführt, die für verweise verfügbar sind. Wenn Sie einen Verweis auf eine registrierte COM-DLL hinzufügen möchten, die ein internes Manifest enthält, heben Sie die Registrierung der DLL zuerst auf. Andernfalls fügt Visual Studio den Assemblyverweis als ActiveX-Steuerelement anstelle als systemeigene DLL hinzu.

Wenn ein Projekttyp COM nicht unterstützt, wird die Registerkarte nicht im Dialogfeld "Verweis-Manager" angezeigt.

Durchsuchen

Sie können die Schaltfläche Durchsuchen verwenden, um nach einer Komponente oder Assembly im Dateisystem zu suchen.

Ein Projekt kann auf eine Komponente verweisen, die auf eine andere Frameworkversion ausgerichtet ist. Sie können beispielsweise eine Anwendung erstellen, die auf .NET Framework 4.7.2 ausgerichtet ist, aber auf eine Komponente verweist, die auf .NET Framework 4 ausgerichtet ist. Weitere Informationen finden Sie unter Framework-Zieladressierungsübersicht.

Vermeiden Sie das Hinzufügen von Dateiverweisen zu Ausgaben eines anderen Projekts in derselben Lösung, da diese Taktik zu Kompilierungsfehlern führen kann. Erstellen Sie Verweise zwischen Projekten stattdessen im Dialogfeld „Verweis-Manager“ auf der Registerkarte Projektmappe. Dies erleichtert die Teamentwicklung, indem eine bessere Verwaltung der Klassenbibliotheken ermöglicht wird, die Sie in Ihren Projekten erstellen. Weitere Informationen finden Sie unter Problembehandlung bei fehlerhaften Verweisen.

Sie können nicht zu einem SDK navigieren und zu Ihrem Projekt hinzufügen. Sie können nur zu einer Datei navigieren (z. B. eine Assembly oder .winmd), und sie zu Ihrem Projekt hinzufügen.

Wenn Sie auf eine WinMD-Datei verweisen, ist das erwartete Layout, dass die <FileName->.winmd, <FileName->.dllund <FileName->.pri Dateien nebeneinander platziert werden. Wenn Sie in den folgenden Szenarien auf eine WinMD verweisen, werden unvollständige Dateien in das Projektausgabeverzeichnis kopiert, daher treten Build- und Laufzeitfehler auf.

  • Native Komponente: Ein systemeigenes Projekt erzeugt für jede nicht zusammenhängende Menge von Namespaces eine WinMD und eine aus der Implementierung bestehende DLL. Die WinMDs weisen ungleiche Namen auf. Beim Verweisen auf diese systemeigene Komponentendatei erkennt MSBuild nicht, dass die unterschiedlich benannten WinMDs eine Komponente bilden. Daher werden nur die identisch benannten <FileName>.dll und <FileName>.winmd- kopiert, und Laufzeitfehler treten auf. Um dieses Problem zu umgehen, erstellen Sie ein Erweiterungs-SDK. Weitere Informationen finden Sie unter Create a Software Development Kit.

  • Verarbeiten von Steuerelementen: Ein XAML-Steuerelement besteht mindestens aus einer <Dateiname>.winmd-, <Dateiname>.dll-, <Dateiname>.pri-, <XAML-Name>.xaml- und einer <Imagename>.jpg-Datei. Wenn das Projekt erstellt wird, werden die Ressourcendateien, die dem Dateiverweis zugeordnet sind, nicht in das Ausgabeverzeichnis des Projekts kopiert, und nur <FileName>.winmd, <FileName>.dll und <FileName>.pri kopiert. Es wird ein Buildfehler protokolliert, der angibt, dass die Ressourcen <XamlName->.xaml- und <ImageName->.jpg fehlen. Um sicherzustellen, dass der Vorgang erfolgreich ist, kopieren Sie diese Ressourcendateien manuell in das Projektausgabeverzeichnis für den Build und das Debugging während der Ausführung. Um dieses Problem zu umgehen, erstellen Sie entweder ein Erweiterungs-SDK, indem Sie die Schritte in Erstellen eines Software-Entwicklungskits befolgen, oder bearbeiten Sie die Projektdatei, um die folgende Eigenschaft hinzuzufügen:

    <PropertyGroup>
       <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    Anmerkung

    Wenn Sie die Eigenschaft hinzufügen, wird der Build ggf. langsamer ausgeführt.

Aktuell

Assemblys, COM, Windows und Durchsuchen unterstützen jeweils eine Registerkarte Aktuell, auf der die Liste der Komponenten aufgeführt werden, die Projekten kürzlich hinzugefügt wurden.

Die Suchleiste im Dialogfeld „Verweis-Manager“ funktioniert über die Registerkarte, die sich im Fokus befindet. Wenn Sie z. B. "System" in die Suchleiste eingeben, während sich die Registerkarte Lösung im Fokus befindet, liefert die Suche keine Ergebnisse, es sei denn, die Lösung besteht aus einem Projektnamen, der "System" enthält.

Entfernen eines Verweises

Sie können nicht verwendete Verweise für SDK-Formatprojekte in Visual Studio entfernen, indem Sie das Menüelement "Nicht verwendete Referenz entfernen" verwenden.

Screenshot: Option „Nicht verwendete Verweise entfernen“ im Kontextmenü des Projektmappen-Explorers

Weitere Informationen finden Sie unter Entfernen nicht verwendeter Verweise.