Verwalten von Verweisen in einem Projekt
Bevor Sie Code schreiben können, der sich auf eine externe Komponente oder einen verbundenen Dienst bezieht, müssen Sie zunächst einen Verweis auf diese Komponente im Projekt einrichten. Ein Verweis ist im Prinzip ein Eintrag in einer Projektdatei, der Informationen beinhaltet, die von Visual Studio zum Auffinden der Komponente oder des Diensts benötigt.
Wie Sie einen Verweis hinzufügen, hängt vom Projekttyp für den Code ab, an dem Sie arbeiten:
Wenn im Projektmappen-Explorer der Knoten Abhängigkeiten angezeigt wird, können Sie mit der rechten Maustaste das Kontextmenü öffnen und Projektverweis hinzufügen auswählen.
Sie können auch mit der rechten Maustaste auf den Projektknoten klicken und Hinzufügen>Projektverweis auswählen.
Wenn im Projektmappen-Explorer der Knoten Verweise angezeigt wird, können Sie mit der rechten Maustaste das Kontextmenü öffnen und Verweis hinzufügen auswählen.
Alternativ können Sie mit der rechten Maustaste auf den Projektknoten klicken und Hinzufügen>Verweis auswählen.
Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen und Entfernen von Verweisen.
Sie können einen Verweis zu folgenden Komponenten- und Diensttypen hinzufügen:
.NET-Klassenbibliotheken oder -Assemblys
UWP-Apps
COM-Komponenten
Sonstige Assemblys oder Klassenbibliotheken von Projekten in derselben Projektmappe
Freigegebene Projekte
XML-Webdienste
Verweise von UWP-Apps
Die universelle Windows-Plattform (UWP) stellt eine allgemeine App-Plattform bereit für alle Windows-Geräte bereit. Informationen zum Erstellen einer UWP-App finden Sie unter Tutorial: Erstellen Ihrer ersten Anwendung für die Universelle Windows-Plattform in Visual Studio mit XAML und C#.
Projektverweise
UWP-Projekte (Universelle Windows-Plattform) können Verweise auf andere UWP-Projekte in der Projektmappe oder auf Windows 8.1-Projekte oder Binärdateien erstellen. Die Voraussetzung hierfür ist, dass diese Projekte keine APIs verwenden, die in Windows 10 und höher nicht mehr unterstützt werden. Weitere Informationen finden Sie unter Move from Windows Runtime 8 to UWP(Von Windows-Laufzeit zu UWP) (möglicherweise in englischer Sprache).
Informationen zur Neuausrichtung von Windows 8.1-Projekten auf Windows 10 und höher finden Sie unter Projektmigration und Upgradereferenz für Visual Studio.
Tipp
Informationen zum Erstellen einer neuen UWP-App für Windows 10 und Windows 11 einschließlich Build finden Sie unter Auswählen einer UWP-Version.
Verweise auf Erweiterungs-SDKs
UWP-Apps (Universelle Windows-Plattform) in Visual Basic, C#, C++ und JavaScript können auf Erweiterungs-SDKs verweisen, die Windows 8.1 als Ziel haben, sofern diese Erweiterungs-SDKs keine APIs verwenden, die in Windows 10 und höher nicht mehr unterstützt werden. Besuchen Sie die Website des Anbieters des Erweiterungs-SDKs, um festzustellen, ob UWP-Apps darauf verweisen können.
Wenn Sie feststellen, dass das Erweiterungs-SDK, auf das von Ihrer Anwendung verwiesen wird, nicht unterstützt wird, müssen Sie folgende Schritte ausführen:
Schauen Sie sich den Namen des Projekts an, das den Fehler verursacht. Die Plattform, auf die Ihr Projekt abzielt, steht in Klammern neben dem Projektnamen. Beispielsweise bedeutet MyProjectName (Windows 8.1) dass das Projekt MyProjectName auf die Plattformversion Windows 8.1 abzielt.
Wechseln Sie zur Website des Anbieters des nicht unterstützten Erweiterungs-SDKs, und installieren Sie die SDK-Version, deren Abhängigkeiten mit der Version der Plattform kompatibel sind, auf die Ihr Projekt ausgelegt ist.
Hinweis
Um herauszufinden, ob ein Erweiterungs-SDK von einem anderen abhängt, können Sie im Verweis-Manager nachsehen. Starten Sie Visual Studio neu, erstellen Sie ein neues UWP-App-Projekt in C#, klicken Sie dann mit der rechten Maustaste auf das Projekt, und wählen Sie Verweis hinzufügen aus. Wechseln Sie zur Registerkarte Fenster und dann zur Unterregisterkarte Erweiterungen, und wählen Sie das Erweiterungs-SDK aus. Sehen Sie sich den Verweis-Manager im rechten Bereich an. Wenn Abhängigkeiten bestehen, werden sie dort aufgeführt.
Wichtig
Wenn Ihr Projekt speziell auf Windows 10 ausgerichtet ist und das im vorherigen Schritt installierte Erweiterungs-SDK von Microsoft Visual C++ Runtime Package abhängt, lautet die mit Windows 10 kompatible Version von Microsoft Visual C++ Runtime Package 14.0 und wird mit Visual Studio installiert.
Wenn das im vorherigen Schritt installierte Erweiterungs-SDK von anderen Erweiterungs-SDKs abhängig ist, rufen Sie die Websites der entsprechenden Anbieter auf, und installieren Sie die Versionen dieser Abhängigkeiten, die mit der Version der Plattform, auf die Ihr Projekt ausgelegt ist, kompatibel sind.
Starten Sie Visual Studio neu, und öffnen Sie Ihre App.
Klicken Sie in dem Projekt, das den Fehler verursacht hat, mit der rechten Maustaste auf einen der Knoten Verweise oder Abhängigkeiten, und wählen Sie dann Verweis hinzufügen aus.
Wählen Sie die Registerkarte Fenster und dann die Unterregisterkarte Erweiterungen aus, deaktivieren Sie die Kontrollkästchen für die alten Erweiterungs-SDKs, und aktivieren Sie dann die Kontrollkästchen für die neuen. Klicken Sie auf OK.
Hinzufügen von Verweisen zur Entwurfszeit
Wenn Sie im Projekt einen Verweis auf eine Assembly erstellen, sucht Visual Studio die Assembly an den folgenden Speicherorten:
Das aktuelle Projektverzeichnis. (Sie können die Assemblys über die Registerkarte Durchsuchen suchen.)
Andere Projektverzeichnisse in der gleichen Projektmappe. (Sie finden diese Assemblys auf der Registerkarte Projekte .)
Hinweis
- Alle Projekte enthalten einen impliziten Verweis auf mscorlib.
- Alle Projekte enthalten einen impliziten Verweis auf
System.Core
. Dies gilt auch, wennSystem.Core
aus der Liste der Verweise entfernt wird. - Visual Basic-Projekte enthalten einen impliziten Verweis auf Microsoft.VisualBasic.
Verweise auf freigegebene Komponenten zur Laufzeit
Zur Laufzeit müssen sich Komponenten entweder im Ausgabepfad des Projekts oder im Globalen Assemblycache (GAC) befinden. Wenn das Projekt einen Verweis auf ein Objekt enthält, der sich nicht an einem dieser Orte befindet, müssen Sie den Verweis beim Erstellen des Projekts in den Ausgabepfad des Projekts kopieren. Die CopyLocal -Eigenschaft gibt an, ob diese Kopie erstellt werden muss. Wenn der Wert Truelautet, wird der Verweis beim Erstellen des Projekts in das Projektverzeichnis kopiert. Wenn der Wert False lautet, wird der Verweis nicht kopiert.
Wenn Sie eine Anwendung bereitstellen, die einen Verweis auf eine im GAC registrierte benutzerdefinierte Komponente enthält, wird die Komponente unabhängig von der Einstellung CopyLocal nicht mit der Anwendung bereitgestellt. In früheren Versionen von Visual Studio konnten Sie die CopyLocal-Eigenschaft für einen Verweis festlegen, um sicherzustellen, dass die Assembly bereitgestellt wird. Jetzt müssen Sie die Assembly manuell dem Ordner \Bin hinzufügen. Durch diese Aktion wird der gesamte benutzerdefinierte Code einer Prüfung unterzogen, sodass das Risiko der Veröffentlichung von unbekanntem benutzerdefinierten Code vermindert wird.
Wenn sich die Assembly bzw. Komponente im globalen Assemblycache befindet oder eine .NET Framework-Komponente ist, wird die CopyLocal -Eigenschaft standardmäßig auf False festgelegt. Andernfalls wird der Wert auf Truefestgelegt. Verweise zwischen Projekten werden immer auf Truefestgelegt.
Verweisen auf ein Projekt oder eine Assembly, das/die auf eine andere .NET-Version ausgerichtet ist
Sie können Anwendungen erstellen, die auf Projekte oder Assemblys verweisen, die auf eine andere Version von .NET ausgerichtet sind. Sie können z.B. eine Anwendung für .NET Framework 4.6 erstellen, die auf eine Assembly verweist, die wiederum .NET Framework 4.5 anzielt. Wenn Sie ein Projekt für eine frühere Version von .NET erstellen, können Sie in diesem Projekt nicht auf Projekte oder Assemblys verweisen, die auf eine neuere Version ausgerichtet sind.
Weitere Informationen finden Sie unter Übersicht über Frameworkziele.
Projekt-zu-Projekt-Verweise
Verweise zwischen Projekten sind Verweise auf Projekte mit Assemblys. Projektverweise weisen Sie über die Registerkarte Projekte im Dialogfeld „Verweis-Manager“ hinzu. Visual Studio kann anhand eines Pfads zum Projekt nach einer Assembly suchen.
Wenn in einem Projekt eine Assembly erstellt wird, sollten Sie auf das Projekt verweisen, anstatt einen Dateiverweis zu verwenden. Der Vorteil eines Verweises zwischen Projekten liegt darin, dass eine Abhängigkeit zwischen den Projekten im Buildsystem erzeugt wird. Das abhängige Projekt wird erstellt, wenn es sich seit der letzten Erstellung des verweisenden Projekts geändert hat. Bei Dateiverweisen wird keine Buildabhängigkeit erstellt, sodass das verweisende Projekt ohne Erstellen des abhängigen Projekts erstellt werden kann, und der Verweis kann veraltet sein. (Das heißt, das Projekt kann auf eine vorher erstellte Version des Projekts verweisen.) Dies kann dazu führen, dass im bin-Verzeichnis mehrere Versionen einer einzigen DLL erforderlich sind, was jedoch nicht möglich ist. Wenn dieser Konflikt auftritt, wird eine Meldung wie diese angezeigt: „Warnung: Die Abhängigkeit ‚Datei‘ im Projekt ‚Projekt‘ kann nicht in das Ausführungsverzeichnis kopiert werden, da sie den Verweis ‚Datei‘ überschreiben würde.“ Weitere Informationen finden Sie unter Problembehandlung bei fehlerhaften Verweisen und Erstellen und Entfernen von Projektabhängigkeiten.
Hinweis
Anstelle eines Projekt-zu-Projekt-Verweises wird ein Dateiverweis erstellt, wenn die Zielversion von .NET Framework eines Projekts Version 4.5 ist und die Zielversion des anderen Projekts Version 2, 3, 3.5 oder 4.0 ist.
Verweis für das freigegebene Projekt
Im Gegensatz zu den meisten anderen Projekttypen hat ein freigegebenes Projekt keine Binärausgabe. Stattdessen wird der Code in jedes Projekt kompiliert, das auf ihn verweist. Mit freigegebenen Projekten können Sie allgemeinen Code schreiben, auf den von einigen verschiedenen Anwendungsprojekten verwiesen wird. Der Code wird als Teil jedes verweisenden Projekts kompiliert und kann Compilerdirektiven beinhalten, um plattformspezifische Funktionen in die freigegebene Codebasis zu integrieren. Fügen Sie auf der Registerkarte Freigegebene Projekte im Dialogfeld „Verweis-Manager“ einen Verweis auf ein freigegebenes Projekt hinzu.
Dateiverweise
Dateiverweise sind direkte Verweise auf Assemblys, die sich außerhalb eines Visual Studio-Projekts befinden. Sie erstellen diese mithilfe der Registerkarte Durchsuchen im Dialogfeld „Verweis-Manager“. Dateiverweise bieten sich an, wenn Sie nur eine Assembly oder Komponente haben und nicht das Projekt, das sie als Ausgabe erstellt.