Freigeben über


Übersicht über Frameworkziele

In Visual Studio können Sie die Version von .NET angeben, auf die das Projekt ausgerichtet werden soll. Die Framework-Zielbestimmung trägt dazu bei, sicherzustellen, dass die Anwendung nur Funktionen verwendet, die in der angegebenen Frameworkversion verfügbar sind. Damit .NET Framework-Apps auf einem anderen Computer ausgeführt werden können, muss die Frameworkversion, auf die die Anwendung abzielt, mit der auf dem Computer installierten Frameworkversion kompatibel sein.

Eine Visual Studio-Projektmappe kann Projekte enthalten, die auf unterschiedliche Versionen von .NET abzielen. Beachten Sie jedoch, dass Sie nur mit einer einzelnen Version von .NET erstellen können, indem Sie entweder Referenzbedingungen für einen einzelnen Build verwenden oder unterschiedliche Binärdateien für jedes Zielframework erstellen. Weitere Informationen zu Zielframeworks finden Sie unter Zielframeworks.

Tipp

Sie können auch Anwendungen für verschiedene Plattformen als Ziel festlegen. Weitere Informationen finden Sie unter Festlegen von Zielversionen.

Frameworkzielfeatures

Frameworkziele umfassen folgende Features:

  • Wenn Sie ein Projekt öffnen, das auf eine frühere Framework-Version abzielt, kann Visual Studio das Projekt automatisch aktualisieren oder das Ziel as-isbelassen.

  • Wenn Sie ein .NET Framework-Projekt erstellen, können Sie die Version von .NET Framework angeben, auf die Sie abzielen möchten.

  • Sie können in einem einzigen Projekt auf mehrere Frameworks abzielen.

  • Sie können eine andere Version von .NET in jedem von mehreren Projekten in derselben Lösung als Ziel festlegen.

  • Sie können die Version von .NET ändern, auf die ein vorhandenes Projekt ausgerichtet ist.

    Wenn Sie die Version von .NET ändern, auf die ein Projekt ausgerichtet ist, nimmt Visual Studio alle erforderlichen Änderungen an Verweisen und Konfigurationsdateien vor.

Wenn Sie an einem Projekt arbeiten, das auf eine frühere Frameworkversion abzielt, ändert Visual Studio die Entwicklungsumgebung dynamisch wie folgt:

  • Es filtert Elemente im Dialogfeld Dialogfeld "Neues Element hinzufügen", das Dialogfeld "Neuen Verweis hinzufügen" und das Dialogfeld "Dienstverweis hinzufügen" aus, um Auswahlmöglichkeiten auszulassen, die in der Zielversion nicht verfügbar sind.

  • Es filtert benutzerdefinierte Steuerelemente in der Toolbox, um diejenigen zu entfernen, die in der Zielversion nicht verfügbar sind, und nur die meisten up-to-date-Steuerelemente anzuzeigen, wenn mehrere Steuerelemente verfügbar sind.

  • Sie filtert IntelliSense-, sodass Sprachfunktionen ausgelassen werden, die in der Zielversion nicht verfügbar sind.

  • Es filtert Eigenschaften im Fenster Eigenschaften aus, um die auszuschließen, die in der Zielversion nicht verfügbar sind.

  • Es filtert Menüoptionen, um Optionen auszulassen, die in der Zielversion nicht verfügbar sind.

  • Für Builds verwendet sie die Version des Compilers und die Compileroptionen, die für die Zielversion geeignet sind.

Anmerkung

  • Die Framework-Zielbestimmung garantiert nicht, dass Ihre Anwendung ordnungsgemäß ausgeführt wird. Sie müssen Ihre Anwendung testen, um sicherzustellen, dass sie für die Zielversion ausgeführt wird.
  • Sie können keine Frameworkversionen unter .NET Framework 2.0 als Ziel festlegen.

Ändern des Zielframeworks

In einem vorhandenen Visual Basic-, C#- oder F#-Projekt ändern Sie die .NET-Zielversion im Dialogfeld "Projekteigenschaften". Informationen zum Ändern der Zielversion für C++-Projekte finden Sie unter So wird's gemacht: Ändern des Zielframeworks und des Plattformtoolsets.

  1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das zu ändernde Projekt per Rechtsklick, und wählen Sie Eigenschaften aus.

  2. Wählen Sie in der linken Spalte des Fensters Eigenschaften die Registerkarte Anwendung aus.

    Projekteigenschaften, Registerkarte

    Anmerkung

    Nachdem Sie eine UWP-App erstellt haben, können Sie die Zielversion von Windows oder .NET nicht mehr ändern.

  3. Wählen Sie in der Liste Zielframework die gewünschte Version aus.

  4. Wählen Sie im daraufhin angezeigten Überprüfungsdialogfeld die Schaltfläche Ja aus.

    Das Projekt wird entladen. Wenn sie neu geladen wird, wird sie auf die soeben ausgewählte .NET-Version ausgerichtet.

  1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das zu ändernde Projekt per Rechtsklick, und wählen Sie Eigenschaften aus.

  2. Wählen Sie in der linken Spalte des Fensters Eigenschaften die Registerkarte Anwendung aus.

    Anmerkung

    Nachdem Sie eine UWP-App erstellt haben, können Sie die Zielversion von Windows oder .NET nicht mehr ändern.

  3. Wählen Sie in der Liste Zielframework die gewünschte Version aus.

    Bei einem .NET Framework-Projektsieht das angezeigte Dialogfeld möglicherweise ähnlich wie im folgenden Screenshot aus:

    Screenshot des Dialogfelds

    Bei einem .NET-Projektsieht das Dialogfeld möglicherweise ähnlich wie im folgenden Screenshot aus:

    Screenshot der Registerkarte

  4. Wenn ein Bestätigungsdialogfeld angezeigt wird, wählen Sie die Schaltfläche Ja aus.

    Das Projekt wird entladen. Wenn sie neu geladen wird, wird sie auf die soeben ausgewählte .NET-Version ausgerichtet.

Auf mehrere Frameworks abzielen

Mit .NET 5 und höher können Sie ein Projekt für mehrere Frameworks in einem einzigen Build erstellen, indem Sie die Projektdatei manuell bearbeiten. Öffnen Sie die Projektdatei, und ersetzen Sie die TargetFramework-Eigenschaft durch TargetFrameworks, und geben Sie Ihre Liste der Target Framework Monikers (TFMs), getrennt durch Semikolons, wie im folgenden Code an:

   <TargetFrameworks>net7.0;net8.0</TargetFrameworks>

Eine Liste der TFMs finden Sie unter Target Frameworks in Projekten im SDK-Format.

Sie müssen das Projekt neu laden, nachdem Sie diese Änderung vorgenommen haben. Nachdem Sie das Fenster Eigenschaften geöffnet haben, können Sie auf der Registerkarte Anwendung die Liste der Zielframeworks bearbeiten.

Screenshot der Registerkarte „Allgemein“ im Dialogfeld „Projekteigenschaften“ mit der Liste für „Zielframework“

Anmerkung

Wenn Ihr Code Verweise auf eine andere Version von .NET enthält als die, auf die Sie abzielen, werden fehlermeldungen möglicherweise angezeigt, wenn Sie den Code kompilieren oder ausführen. Um diese Fehler zu beheben, ändern Sie die Verweise. Weitere Informationen finden Sie unter Problembehandlung bei .NET-Zielversionsfehlern.

Tipp

Je nach Zielframework kann es auf folgende Weise in der Projektdatei dargestellt werden:

  • Für eine .NET Core-App: <TargetFramework>netcoreapp2.1</TargetFramework>
  • Für eine .NET Standard-App: <TargetFramework>netstandard2.0</TargetFramework>
  • Für eine .NET Framework-App: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>

Auswählen einer Zielframeworkversion

Wenn Sie ein .NET Framework-Projekt erstellen, können Sie die .NET Framework-Zielversion auswählen, nachdem Sie eine Projektvorlage ausgewählt haben. Die Liste der verfügbaren Frameworks enthält die installierten Frameworkversionen, die für den ausgewählten Vorlagentyp gelten. Für non-.NET Framework-Projektvorlagen, z. B. .NET Core-Vorlagen, wird die Dropdownliste Framework nicht angezeigt.

Screenshot der Framework-Dropdownliste in Visual Studio 2019.

Wenn Sie ein .NET Framework-Projekt erstellen möchten, wird eine Schnittstelle angezeigt, die dem folgenden Screenshot ähnelt:

Screenshot der Dropdownliste

Wenn Sie ein .NET-Projekt erstellen möchten, wird die Benutzeroberfläche (UI) angezeigt, die den folgenden beiden Screenshots ähnelt.

Der erste Bildschirm, den Sie sehen, ist das Dialogfeld "Neues Projekt konfigurieren".

Screenshot des Dialogfelds

Der zweite Bildschirm, den Sie sehen, ist das Dialogfeld Zusätzliche Optionen.

Screenshot des Dialogfelds

Auflösen von System- und Benutzerassemblyverweisen

Um eine .NET-Version als Ziel zu verwenden, müssen Sie zuerst die entsprechenden Assemblyverweise installieren. Sie können Entwicklerpakete für verschiedene Versionen von .NET auf der .NET-Downloads Seite herunterladen.

Für .NET Framework-Projekte deaktiviert das Dialogfeld Verweise hinzufügen Systemassemblys, die nicht zur Zielversion des .NET Frameworks gehören, um sicherzustellen, dass sie nicht versehentlich zu einem Projekt hinzugefügt werden können. (Systemassemblys sind .dll Dateien, die in einer .NET Framework-Version enthalten sind.) Verweise, die zu einer Frameworkversion gehören, die höher als die Zielversion ist, werden nicht aufgelöst, und Steuerelemente, die von einem solchen Verweis abhängen, können nicht hinzugefügt werden. Wenn Sie einen solchen Verweis aktivieren möchten, setzen Sie das .NET Framework-Ziel des Projekts auf eins zurück, das den Verweis enthält.

Weitere Informationen zu Assemblyverweisen finden Sie unter Auflösen von Assemblys zur Entwurfszeit.

LINQ aktivieren

Wenn Sie auf .NET Framework 3.5 oder höher abzielen, wird automatisch ein Verweis auf System.Core und ein Import auf Projektebene für System.Linq (nur in Visual Basic) hinzugefügt. Wenn Sie LINQ-Features verwenden möchten, müssen Sie auch Option Infer aktivieren (nur in Visual Basic). Der Verweis und Import werden automatisch entfernt, wenn Sie das Ziel in eine frühere .NET Framework-Version ändern. Weitere Informationen finden Sie unter Arbeiten mit LINQ.

Siehe auch