MSBuild-Zielframework und -Zielplattform

Ein Projekt kann erstellt werden, um in einem Zielframework, bei dem es sich um eine bestimmte Version von .NET Framework handelt, und auf einer Zielplattform, bei der es sich um eine bestimmte Softwarearchitektur handelt, ausgeführt zu werden. Beispielsweise können Sie eine Anwendung für die Ausführung in .NET Framework 2.0 auf einer 32-Bit-Plattform entwickeln, die mit der 80x86-Prozessorfamilie („x86“) kompatibel ist. Die Kombination von Zielframework und Zielplattform wird als Zielkontext bezeichnet.

Wichtig

In diesem Artikel wird die alte Methode zum Angeben eines Zielframeworks beschrieben. Projekte im SDK-Format ermöglichen unterschiedliche Zielframeworks wie .NET Standard. Weitere Informationen finden Sie unter Zielframeworks.

Zielframework und -profil

Ein Zielframework ist eine bestimmte Version von .NET Framework, mit der das Projekt ausgeführt werden soll. Die Angabe eines Zielframeworks ist erforderlich, da es Compilerfunktionen und Assemblyverweise ermöglicht, die nur für diese Version des Frameworks gelten.

Derzeit werden die folgenden Versionen von .NET Framework unterstützt:

  • .NET Framework 2.0 (enthalten in Visual Studio 2005)

  • .NET Framework 3.0 (enthalten in Windows Vista)

  • .NET Framework 3.5 (enthalten in Visual Studio 2008)

  • .NET Framework 4.0

  • .NET Framework 4.5.2

  • .NET Framework 4.6 (enthalten in Visual Studio 2015)

  • .NET Framework 4.6.1

  • .NET Framework 4.6.2

  • .NET Framework 4.7

  • .NET Framework 4.7.1

  • .NET Framework 4.7.2

  • .NET Framework 4.8

Die Versionen von .NET Framework unterscheiden sich in der Liste der Assemblys, die als Verweise zur Verfügung stehen. Beispielsweise können Sie Windows Presentation Foundation (WPF)-Anwendungen nur erstellen, wenn Ihr Projekt auf die .NET Framework-Version 3.0 oder höher ausgelegt ist.

Das Zielframework wird in der TargetFrameworkVersion-Eigenschaft in einer Projektdatei angegeben. Sie können das Zielframework für ein Projekt ändern, indem Sie die Projekteigenschaftenseiten in der integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) von Visual Studio verwenden. Weitere Informationen finden Sie unter Vorgehensweise: .NET Framework-Version als Ziel. Die verfügbaren Werte für TargetFrameworkVersion sind v2.0, v3.0, v4.0, v3.5, v4.5.2, v4.6, v4.6.1, v4.6.2, v4.7, v4.7.1, v4.7.2 und v4.8.

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Ein Zielprofil ist eine Teilmenge eines Zielframeworks. Beispielsweise enthält das .NET Framework 4-Clientprofil keine Verweise auf die MSBuild-Assemblys.

Hinweis

Zielprofile gelten nur für portable Klassenbibliotheken.

Das Zielprofil wird in der TargetFrameworkProfile-Eigenschaft in einer Projektdatei angegeben. Sie können das Zielprofil ändern, indem Sie das Zielframeworksteuerelement in den Projekteigenschaftenseiten der IDE verwenden.

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>

Zielplattform

Eine Plattform ist eine Kombination aus Hardware und Software, die eine bestimmte Laufzeitumgebung definiert. Ein auf ein Objekt angewendeter

  • x86 steht für ein 32-Bit-Windows-Betriebssystem, das auf einem Intel 80x86-Prozessor oder einem vergleichbaren Prozessor ausgeführt wird.
  • x64 steht für ein 64-Bit-Windows-Betriebssystem, das auf einem Intel-x64-Prozessor oder einem vergleichbaren Prozessor ausgeführt wird.
  • anycpu kennzeichnet eine Ausgabe, die so konfiguriert ist, dass sie auf jeder Plattform ausgeführt werden kann. Ihre Anwendung wird nach Möglichkeit als 64-Bit-Prozess ausgeführt und wechselt zurück zu 32-Bit, wenn nur dieser Modus verfügbar ist.
  • anycpu32bitpreferred kennzeichnet eine Ausgabe, die auf einer beliebigen Plattform ausgeführt werden kann. Die Anwendung wird auf Systemen, die sowohl 64-Bit- als auch 32-Bit-Anwendungen unterstützen, im 32-Bit-Modus ausgeführt.
  • Xbox steht für die Microsoft Xbox 360-Plattform.
  • ARM kompiliert Ihre Assembly für die Ausführung auf einem Computer mit einem ARM-Prozessor (Advanced RISC-Computer).
  • ARM64 kompiliert Ihre Assembly für die Ausführung durch die 64-Bit-CLR auf einem Computer mit einem Advanced RISC Machine-Prozessor (ARM), der den A64-Anweisungssatz unterstützt.

Eine Zielplattform ist die spezielle Plattform, auf der Ihr Projekt ausgeführt werden kann. Die Zielplattform wird in der PlatformTarget-Buildeigenschaft in einer Projektdatei angegeben. Sie können die Zielplattform ändern, indem Sie die Projekteigenschaftenseiten oder den Konfigurations-Manager in der IDE verwenden.

<PropertyGroup>
   <PlatformTarget>x86</PlatformTarget>
</PropertyGroup>

Der Wert PlatformTarget wird an den Compiler übergeben, um zu bestimmen, welche Ausgabe generiert werden soll. Bei C#-Projekten wird sie der C#-Compileroption -platform zugeordnet. Die Plattformoptionen werden ausführlicher unter Compileroptionen: PlatformTarget erläutert.

Eine Zielkonfiguration ist eine Teilmenge einer Zielplattform. x86Debug-Konfiguration enthält z. B. die meisten Codeoptimierungen nicht. Die Zielkonfiguration wird in der Configuration-Buildeigenschaft in einer Projektdatei angegeben. Sie können die Zielkonfiguration ändern, indem Sie die Projekteigenschaftenseiten oder den Konfigurations-Manager verwenden.

<PropertyGroup>
   <PlatformTarget>x86</PlatformTarget>
   <Configuration>Debug</Configuration>
</PropertyGroup>