Share via


Gewusst wie: Hinzufügen und Entfernen von Verweisen mit dem Verweis-Manager

Sie können das Dialogfeld Verweis-Manager verwenden, um Verweise auf Komponenten hinzuzufügen und zu verwalten, die von Ihnen, Microsoft oder einem anderen Unternehmen entwickelt wurden.Wenn Sie eine Windows Store-App entwickeln, verweist das Projekt automatisch das gesamte Windows 8 SDK und .NET Framework.Wenn Sie einen anderen Projekttyp entwickeln, müssen Sie diese Verweise dem Projekt manuell hinzufügen.

WarnhinweisVorsicht

Sie können Verweise in Projekten hinzufügen, indem Sie das Dialogfeld Verweis hinzufügen verwenden.Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen oder Entfernen von Verweisen mithilfe des Dialogfelds "Verweise hinzufügen".

Hinzufügen und Entfernen von Verweisen

So fügen Sie einen Verweis in einem C#- oder Visual Basic-Projekt hinzu

  1. Wählen Sie in der Menüleiste Datei und dann Öffnen.

  2. Navigieren Sie zur Projektmappe oder zum Projekt.

  3. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Projektknoten, und wählen Sie dann Verweis hinzufügen aus.

  4. Geben Sie die hinzuzufügenden Verweise an, und wählen Sie dann die Schaltfläche OK aus.

Um einen Verweis zu entfernen, öffnen Sie das entsprechende Kontextmenü, und wählen Sie dann Entfernen aus.

So fügen Sie einem C++-Projekt einen Verweis hinzu

  1. Wählen Sie in der Menüleiste Datei und dann Öffnen.

  2. Navigieren Sie zur Projektmappe oder zum Projekt.

  3. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Projektknoten, und wählen Sie dann Verweise aus.

  4. Klicken Sie im Dialogfeld Eigenschaftenseiten auf die Schaltfläche Neuen Verweis hinzufügen.

  5. Geben Sie im Dialogfeld Verweis hinzufügen die hinzuzufügenden Verweise an, und wählen Sie dann die Schaltfläche OK.

Um einen Verweis zu entfernen, öffnen Sie das entsprechende Kontextmenü, und wählen Sie dann Entfernen aus.

Der Verweis-Manager wird mit den verfügbaren Verweisen nach Gruppe geöffnet.Der Projekttyp bestimmt, welche der folgenden Gruppen angezeigt werden:

  • Assemblys, mit den Framework- und Erweiterungsuntergruppen.

  • Projektmappe, mit der Projektuntergruppe.

  • Windows, mit den Core- und Erweiterungsuntergruppen.Sie können die Verweise im Windows SDK oder im Erweiterungs-SDK mit dem Objektkatalog untersuchen.

  • Durchsuchen, mit der aktuellen Untergruppe.

Assemblyregisterkarte

Die Registerkarte Assemblys führt alle .NET Framework-Assemblys auf, die für Verweise verfügbar sind.Die Registerkarte Assemblys führt keine Assemblys aus dem globalen Assemblycache (GAC) auf, da Assemblys im GAC Teil der Laufzeitumgebung sind.Wenn Sie eine Anwendung bereitstellen oder kopieren, die einen Verweis auf eine im GAC registrierte Assembly enthält, wird die Komponente unabhängig von der Einstellung "Lokal kopieren" nicht mit der Anwendung bereitgestellt oder kopiert.Weitere Informationen über Verweise finden Sie unter Projektverweise.

Wenn Sie manuell einen Verweis auf einen der EnvDTE-Namespaces (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a oder EnvDTE100) hinzufügen, legen Sie im Eigenschaftenfenster die Eigenschaft "Interoptypen einbetten" des Verweises auf "False" fest.Wenn diese Eigenschaft auf "True" festgelegt wird, können aufgrund bestimmter EnvDTE-Eigenschaften, die nicht eingebettet werden können, Buildprobleme auftreten.

Alle Desktopprojekte enthalten einen impliziten Verweis auf "mscorlib".Visual Basic-Projekte enthalten einen impliziten Verweis auf Microsoft.VisualBasic.In Visual Studio 2012 enthalten alle Projekte einen impliziten Verweis auf System.Core. Dies gilt auch, wenn der Eintrag aus der Liste der Verweise entfernt wird.

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

Die Assemblyregisterkarte besteht aus zwei Unterregisterkarten:

  1. Framework listet alle Assemblys auf, die das Zielframework darstellen.

    • Angekündigte Assemblys sind im vollständigen Framework und in der Frameworkliste aufgeführt, wenn das Projekt auf ein Profil des Zielframeworks abzielt.Angekündigte Assemblys sind grau, um sie von Assemblys zu unterscheiden, die im Profil des Zielframeworks des Projekts vorhanden sind.Wenn ein Projekt .NET Framework 4-Client als Ziel verwendet, zeigt die Frameworkliste angekündigte Assemblys aus .NET Framework 4 an.Wenn ein Benutzer eine angekündigte Assembly hinzufügt, wird der Benutzer benachrichtigt, dass das Projekt nach dem Schließen des Dialogfelds Verweis-Manager wieder auf .NET Framework 4 ausgerichtet und die angekündigte Assembly hinzugefügt wird.

    • Projekte für Windows Store-Apps enthalten bei Projekterstellung standardmäßig Verweise auf alle Assemblys im verwendeten .NET für Windows Store-Apps.In verwalteten Projekten gibt ein schreibgeschützter Knoten unter dem Ordner "Verweise" im Projektmappen-Explorer den Verweis für das gesamte Framework an.Entsprechend listet die Frameworkregisterkarte keine der Assemblys aus dem Framework auf und zeigt stattdessen die folgende Meldung an: "Alle Framework-Assemblys sind bereits referenziert.Verwenden Sie den Objektkatalog, um die Verweise im Framework zu durchsuchen." Für Desktopprojekte listet die Frameworkregisterkarte Assemblys aus dem Zielframework auf, und der Benutzer muss die Verweise hinzufügen, die die Anwendung benötigt.

  2. Erweiterungen listen alle Assemblys auf, die externe Anbieter von Komponenten und Steuerelementen selbst entwickelt haben, um das Zielframework zu erweitern.Abhängig vom Zweck der Benutzeranwendung sind diese Assemblys gegebenenfalls erforderlich.

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

      32-bit machine:
      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 machine:
      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]
      And older versions of the [Target Framework Identifier]
      

      Wenn ein Projekt .NET Framework 4 als Ziel auf einem 32-Bit-Computer verwendet, listen die Erweiterungen Assemblys auf, die unter \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\ .NETFramework\v3.5 \AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\ und \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx registriert sind.

COM-Registerkarte

Die Registerkarte "COM" listet alle COM-Komponenten auf, die für Verweise verfügbar sind.Wenn Sie einer registrierten COM DLL mit einem internen Manifest eine Referenz hinzufügen möchten, müssen Sie die Registrierung der DLL zunächst aufheben.Andernfalls fügt Visual Studio den Assemblyverweis als ActiveX-Steuerelement und nicht als systemeigene DLL hinzu.

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

Projektmappenregisterkarte

Die Registerkarte "Projektmappe" listet alle kompatiblen Projekte innerhalb der aktuellen Projektmappe, auf der Unterregisterkarte "Projekte" auf.

Ein Projekt kann auf ein anderes Projekt verweisen, das eine andere .NET Framework-Version als Ziel verwendet.Beispielsweise können Sie ein Projekt erstellen, das .NET Framework 4 als Ziel verwendet, jedoch auf eine Assembly verweist, die für .NET Framework 2. erstellt wurde.Das .NET Framework 2-Projekt kann jedoch nicht auf ein .NET Framework 4-Projekt verweisen.Weitere Informationen finden Sie unter Ausrichten auf eine bestimmte .NET Framework-Version oder ein bestimmtes .NET Framework-Profil.

Ein Projekt, das .NET Framework 4 als Ziel verwendet, ist nicht kompatibel mit einem Projekt, für das als Zielversion .NET Framework 4 Client Profile festgelegt wurde.

In Visual Studio 2012 wird anstelle eines Projektverweises ein Dateiverweis erstellt, wenn ein Projekt .NET Framework 4 als Ziel verwendet und ein anderes Projekt auf eine frühere Version abzielt.

Ein Projekt, das .NET für Windows Store-Apps als Ziel verwendet, kann einem Projekt, das auf .NET Framework abzielt, keinen Projektverweis hinzufügen und umgekehrt.

Fensterregisterkarte

Die Registerkarte "Fenster" führt alle SDK auf, die für Plattformen gelten, auf denen Windows-Betriebssysteme ausgeführt werden.

Sie können eine WinMD-Datei in Visual Studio auf zwei Arten generieren:

  • Von der Windows Store-App verwaltete Projekte: Windows Store-App-Projekte können WinMD-Binärdateien ausgeben, indem Projekteigenschaften | Ausgabetyp = WinMD-Datei festgelegt wird.Der WinMD-Dateiname muss der Superset-Namespace aller Namespaces sein, die innerhalb des Namespace vorhanden sind.Wenn ein Projekt beispielsweise aus Namespaces A.B und A.B.C besteht, sind die möglichen Namen für das ausgegebene WinMD A.winmd und A.B.winmd.Wenn ein Benutzer einen Wert "Projekteigenschaften | Assemblyname" oder "Projekteigenschaften | Namespace" eingibt, der nicht mit dem Satz von Namespaces im Projekt zusammenhängt, wenn kein Superset-Namespace innerhalb eines Projekts vorhanden ist, wird eine Buildwarnung generiert: 'A.winmd' ist kein gültiger WINMD-Dateiname für diese Assembly.Alle Typen innerhalb einer Windows-Metadatendatei müssen in einem Subnamespace des Dateinamens vorhanden sein.Typen, die nicht in einem Subnamespace des Dateinamens vorhanden sind, können zur Laufzeit nicht lokalisiert werden.In dieser Assembly ist der kleinste allgemeine Namespace "CSWSClassLibrary1".Ein Desktop-Visual Basic- oder Visual C#-Projekt kann nur WinMDs nutzen, die mit Windows 8 SDKs generiert werden. Diese werden als Erstanbieter-WinMDs bezeichnet und können keine WinMDs generieren.

  • Systemeigene Windows Store-App-Projekte: Eine systemeigene WinMD-Datei besteht nur aus Metadaten.Die Implementierung befindet sich in einer separaten DLL-Datei.Systemeigene Binärdateien lassen sich erzeugen, indem Sie die Projektvorlage der Komponente für Windows Runtime im Dialogfeld Neues Projekt auswählen wird oder durch Starten in einem leeren Projekt und Ändern der Projekteigenschaften, um eine WinMD-Datei zu generieren.Wenn das Projekt aus unzusammenhängenden Namespaces besteht, wird ein Buildfehler mit der Empfehlung angezeigt, eigene Namespaces zu kombinieren oder das MSMerge-Tool auszuführen.

Die Registerkarte "Windows" besteht aus zwei Untergruppen.

Kernspeicher-Unterregisterkarte

Die Untergruppe "Core" listet alle WinMDs (für Windows Runtime-Elemente) im SDK für die jeweilige Windows-Version auf.

Windows Store-App-Projekte enthalten bei Projekterstellung standardmäßig Verweise auf alle WinMDs im Windows 8 SDK.In verwalteten Projekten gibt ein schreibgeschützter Knoten unter dem Ordner "Verweise" im Projektmappen-Explorer den Verweis für das gesamte Windows 8 SDK an.Entsprechend listet die Untergruppe "Core" im Verweis-Manager keine der Assemblys aus dem Windows 8-SDK auf, sondern zeigt stattdessen eine Meldung an: "Windows SDK ist bereits referenziert.Verwenden Sie den Objektkatalog, um die Verweise im Windows SDK zu durchsuchen."

In den Desktopprojekten wird die Core-Untergruppe nicht standardmäßig angezeigt.Sie können die Windows-Runtime hinzufügen, indem Sie das Kontextmenü für den Projektknoten öffnen, Projekt entladen auswählen, den folgenden Codeabschnitt hinzufügen, und das Projekt erneut öffnen (indem Sie auf dem Projektknoten Projekt erneut laden wählen).Wenn Sie das Dialogfeld Verweis-Manager aufrufen, wird die Untergruppe "Core" angezeigt.

  <PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

Vergessen Sie nicht, das Kontrollkästchen Windows in dieser Untergruppe zu aktivieren.Anschließend können Windows-Runtime-Elemente verwendet werden.Allerdings sollten Sie auch System.Runtime hinzufügen. Die Windows-Runtime definiert einige Standardklassen und Schnittstellen (beispielsweise IEnumerable ), die in Windows Runtime-Bibliotheken verwendet werden.Informationen über das Hinzufügen von System.Runtime finden Sie unter Verwaltete Desktop-Apps und Windows-Runtime.

Erweiterungsuntergruppe

Erweiterungen listen die Benutzer-SDKs auf, die die als Ziel verwendete Windows-Plattform erweitern.Diese Registerkarte wird nur für Windows Store-App-Projekte angezeigt.Desktopprojekte zeigen diese Registerkarte nicht an, da sie nur WINMD-Dateien von Erstanbietern nutzen können.

Ein SDK ist eine Auflistung von Dateien, die Visual Studio als einzelne Komponente behandelt.Auf der Erweiterungsregisterkarte werden SDKs, die sich auf das Projekt beziehen, über das das Dialogfeld Verweis-Manager aufgerufen wurde, als einzelne Einträge aufgeführt.Wenn einem Projekt hinzugefügt, Der gesamte SDK-Inhalt wird, wenn er einem Projekt hinzugefügt wurde, von Visual Studio so verwendet, dass der Benutzer keine weiteren Aktionen ausführen muss, um den SDK-Inhalt in IntelliSense, im Werkzeugkasten, in Designern, im Objektkatalog, im Build, bei der Bereitstellung, beim Debuggen und beim Packen zu nutzen.Informationen darüber, wie Sie das SDK auf der Erweiterungsregisterkarte anzeigen, finden Sie unter Creating a Software Development Kit.

HinweisHinweis

Wenn ein Projekt auf ein SDK verweist, das von einem anderen SKD abhängt, verwendet Visual Studio das zweite SDK nur, wenn der Benutzer einen Verweis auf das zweite SDK manuell hinzufügt.Wenn ein Benutzer ein SDK auf der Registerkarte Erweiterungen auswählt, kann der Benutzer mithilfe des Dialogfelds Verweis-Manager SDK-Abhängigkeiten identifizieren, indem nicht nur der Name und die Version des SDKs, sondern auch der Name aller SDK-Abhängigkeiten im Detailbereich aufgelistet werden.Wenn ein Benutzer die Abhängigkeiten nicht identifiziert und nur dieses SDK hinzufügt, fordert MSBuild den Benutzer auf, die Abhängigkeiten hinzuzufügen.

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

Schaltfläche "Durchsuchen"

Mit der Schaltfläche Durchsuchen können Sie nach einer Komponente im Dateisystem suchen.

Ein Projekt kann auf eine Komponente verweisen, die eine andere .NET Framework-Version als Ziel verwendet.Beispielsweise können Sie eine Anwendung erstellen, die .NET Framework 4 Client Profile als Ziel verwendet, das auf eine Komponente verweist, die auf .NET Framework 2 ausgerichtet ist.Weitere Informationen finden Sie unter Ausrichten auf eine bestimmte .NET Framework-Version oder ein bestimmtes .NET Framework-Profil.

Sie sollten keine Dateiverweise auf Ausgaben eines anderen Projekts in derselben Projektmappe hinzufügen, da dies zu Kompilierungsfehlern führen kann.Erstellen Sie Verweise zwischen Projekten stattdessen im Dialogfeld Verweis-Manager auf der Registerkarte Projektmappe.Dieses Vorgehen erleichtert die Entwicklung im Team, da die in den Projekten erstellten Klassenbibliotheken besser verwaltet werden können.Weitere Informationen finden Sie unter Problembehandlung bei fehlerhaften Verweisen.

Sie können nicht zu einem SDK navigieren und es dem Projekt hinzufügen.Sie können nur zu einer Datei navigieren (beispielsweise eine Assembly oder einer WINMD-Datei) und es dem Projekt hinzufügen.

Beim Erstellen eines Dateiverweises auf ein WinMD wird als Layout erwartet, dass die Dateien FileName.winmd, FileName.dll und FileName.pri alle nebeneinander platziert werden.Wenn Sie in den folgenden Szenarien auf ein WinMD verweisen, wird ein unvollständiger Satz von Dateien in das Projektausgabeverzeichnis kopiert und es treten infolgedessen Build- und Laufzeitfehler auf.

  • Systemeigene Komponente: Ein systemeigenes Projekt erstellt ein WinMD für jeden unzusammenhängenden Satz von Namespaces und eine DLL, die aus der Implementierung besteht.Die WinMDs haben unterschiedliche Namen.Wenn auf diese systemeigene Komponentendatei verwiesen wird, erkennt MSBuild nicht, dass die ungleich benannten WinMDs eine Komponente darstellen.Folglich werden nur die Dateien FileName.dll und FileName.winmd mit identischem Namen kopiert, und es treten Laufzeitfehler auf.Um dieses Problem zu umgehen, erstellen Sie eine Erweiterungs-SDK.Weitere Informationen finden Sie unter Creating a Software Development Kit.

  • Verarbeiten von Steuerelementen: Ein XAML-Steuerelement besteht mindestens aus einer FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml und einer ImageName.jpg.Bei der Projekterstellung werden die Ressourcendateien, die mit dem Dateiverweis verknüpft sind, nicht in das Ausgabeverzeichnis des Projekts kopiert. Es werden nur FileName.winmd, FileName.dll und FileName.pri kopiert.Ein Buildfehler wird protokolliert, um den Benutzer zu informieren, dass die Ressourcen XamlName.xaml und ImageName.jpg fehlenDamit der Vorgang erfolgreich abgeschlossen wird, muss der Benutzer diese Ressourcendateien manuell in das Projektausgabeverzeichnis für Build und Debuggen/Laufzeit kopieren.Um dieses Problem zu umgehen, erstellen Sie entweder eine Erweiterungs-SDK, indem Sie die Schritte unter Creating a Software Development Kit ausführen, oder bearbeiten Sie die Projektdatei und fügen Sie folgende Eigenschaft hinzu:

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

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

Recent

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.

Suche

Die Suchleiste im Dialogfeld Verweis-Manager funktioniert über die Registerkarte, die sich im Fokus befindet.Wenn beispielsweise ein Benutzer "System" in der Suchleiste eingibt, während die Registerkarte Projektmappe im Fokus ist, gibt die Suche keine Ergebnisse zurück, es sei denn, die Projektmappe umfasst einen Projektnamen, der das Wort "System" enthält.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen oder Entfernen von Verweisen mithilfe des Dialogfelds "Verweise hinzufügen"

Konzepte

Verwalten von Projektverweisen