Freigeben über


Mehrere Frameworkversionen und Plattformen ansteuern

Mithilfe von MSBuild können Sie eine Anwendung kompilieren, die auf einer der verschiedenen Versionen von .NET Framework und auf einer von mehreren Systemplattformen ausgeführt wird. Sie können beispielsweise eine Anwendung kompilieren, die auf .NET Framework 2.0 auf einer 32-Bit-Plattform ausgeführt wird, und dieselbe Anwendung kompilieren, die auf der .NET Framework 4.5 auf einer 64-Bit-Plattform ausgeführt wird.

Anmerkung

In diesem Artikel wird eine ältere Art von Multitargeting beschrieben, die für .NET Framework-Builds gilt, in denen ein Projekt nur auf ein Framework und jeweils nur eine Plattform ausgerichtet werden kann. In .NET Core und .NET 5 und höher können Sie einen neueren Multitargeting-Typ verwenden, indem Sie die eigenschaft TargetFrameworks (Plural) in einer Projektdatei verwenden. Wenn Sie mit dotnet build oder ähnlichen .NET CLI-Befehlen oder visual Studio nach dem Erneutladen des Projekts erstellen, verwendet Ihr Build den neueren Typ von Multitargeting, in dem mehrere Builds auftreten, einmal für jedes aufgeführte Zielframework. Weitere Informationen finden Sie unter Zielframeworks.

Dies sind einige der Features der MSBuild-Zielbestimmung:

  • Sie können eine Anwendung entwickeln, die auf eine frühere Version von .NET Framework ausgerichtet ist, z. B. Versionen 2.0, 3.5 oder 4.

  • Sie können auf ein anderes Framework als .NET Framework abzielen, z. B. das Silverlight Framework.

  • Sie können auf ein Frameworkprofilabzielen, bei dem es sich um eine vordefinierte Teilmenge eines Zielframeworks handelt.

  • Wenn ein Service Pack für die aktuelle Version von .NET Framework veröffentlicht wird, können Sie es als Ziel festlegen.

  • MSBuild-Zielbestimmung garantiert, dass eine Anwendung nur die Funktionen verwendet, die im gezielten Framework und auf der Zielplattform verfügbar sind.

Zielframework und Plattform

Ein Zielframework ist die Version von .NET Framework, auf der ein Projekt ausgeführt werden soll, und eine Zielplattform die Systemplattform ist, auf der das Projekt ausgeführt wird. Sie können beispielsweise eine .NET Framework 2.0-Anwendung als Ziel für die Ausführung auf einer 32-Bit-Plattform verwenden, die mit der 80x86-Prozessorfamilie (x86) kompatibel ist. Die Kombination aus Zielframework und Zielplattform wird als Zielkontextbezeichnet. Weitere Informationen finden Sie unter Zielframework und Zielplattform-.

Toolset (ToolsVersion)

Ein Toolset sammelt die Tools, Aufgaben und Ziele, die zum Erstellen der Anwendung verwendet werden. Ein Toolset enthält Compiler wie csc.exe und vbc.exe, die Datei für allgemeine Ziele (microsoft.common.targets) und die allgemeine Aufgabendatei (microsoft.common.tasks). Das Toolset 4.5 kann für .NET Framework-Versionen 2.0, 3.0, 3.5, 4 und 4.5 verwendet werden. Das Toolset 2.0 kann jedoch nur verwendet werden, um auf .NET Framework, Version 2.0, auszurichten. Weitere Informationen finden Sie unter Toolset (ToolsVersion).

Verweisassemblys

Die Referenzassemblys, die im Toolset angegeben sind, helfen Ihnen beim Entwerfen und Erstellen einer Anwendung. Diese Referenzassemblys ermöglichen nicht nur einen bestimmten Zielbuild, sondern beschränken auch Komponenten und Features in der Visual Studio-IDE auf diejenigen, die mit dem Ziel kompatibel sind. Weitere Informationen finden Sie unter Auflösen von Assemblys zur Entwurfszeit.

Konfigurieren von Zielen und Aufgaben

Sie können MSBuild-Ziele und -Aufgaben so konfigurieren, dass sie von MSBuild außerhalb des Prozesses ausgeführt werden, sodass Sie Kontexte ansprechen können, die sich erheblich von dem unterscheiden, auf dem Sie ausgeführt werden. Sie können beispielsweise auf eine 32-Bit-, .NET Framework 2.0-Anwendung abzielen, während der Entwicklungscomputer auf einer 64-Bit-Plattform mit .NET Framework 4.5 ausgeführt wird. Weitere Informationen finden Sie unter Konfigurieren von Zielen und Aufgaben.

Fehlerbehebung

Möglicherweise treten Fehler auf, wenn Sie versuchen, auf eine Assembly zu verweisen, die nicht Teil des Zielkontexts ist. Weitere Informationen zu diesen Fehlern und was Sie dagegen tun können, finden Sie unter Fehlerbehebung bei .NET Framework-Zielausrichtungsfehlern.