Freigeben über


Konfigurieren von Projekten für Zielplattformen

Mit Visual Studio können Sie Ihre Anwendungsbuilds für verschiedene Plattformen (Prozessorarchitekturen) einrichten, einschließlich Arm64 und anderer Plattformen. Sie müssen Visual Studio nicht auf einer Plattform ausführen, um für diese Zielplattform erstellen zu können. Weitere Informationen zur Arm64-Unterstützung in Visual Studio finden Sie unter Visual Studio auf ARM-basierten Geräten. Informationen zur 64-Bit-Plattformunterstützung für die .NET-Entwicklung finden Sie unter 64-Bit-Anwendungen.

Hinweis

Visual Studio 2022 wird als 64-Bit-Anwendung ausgeführt. Dies erfolgt vollständig separat von den Plattformen, auf die Sie Ihre Projekte in Visual Studio ausrichten können. Sie können mit jeder Visual Studio-Version Software für 32-Bit- und 64-Bit-Plattformen entwickeln.

Mit Visual Studio können Sie Ihre Anwendungsbuilds für verschiedene Plattformen (Prozessorarchitekturen) einrichten, z. B. x86 und x64. Informationen zur 64-Bit-Plattformunterstützung für die .NET-Entwicklung finden Sie unter 64-Bit-Anwendungen.

Hinweis

Visual Studio wird als 32-Bit-Anwendung ausgeführt. Dies erfolgt vollständig separat von den Plattformen, auf die Sie Ihre Projekte in Visual Studio ausrichten können. Sie können mit jeder Visual Studio-Version Software für 32-Bit- und 64-Bit-Plattformen entwickeln.

Zielplattformen mit dem Konfigurations-Manager

Mit dem Konfigurations-Manager können Sie für ein Projekt schnell eine neue Zielplattform hinzufügen. Wenn Sie eine der Plattformen auswählen, die in Visual Studio enthalten sind, wird eine Konfiguration eingerichtet, um Ihr Projekt für die ausgewählte Plattform zu erstellen.

Um einige Plattformen in einem nativen C++-Projekt zu verwenden, müssen Sie die Buildtools für die jeweilige Plattform installieren. C++-Buildtools für x86- und x64-Plattformen werden mit der C++-Standardworkload installiert. Wenn Sie auf eine andere Prozessorarchitektur abzielen, z. B. Arm64, müssen Sie den Visual Studio-Installer verwenden, um die Buildtools für die Plattform zu erstellen, bevor Sie fortfahren. Weitere Informationen finden Sie im Artikel Ändern von Visual Studio durch Hinzufügen oder Entfernen von Arbeitsauslastungen und Komponenten. Sie müssen Visual Studio nicht auf einem Arm64-Gerät ausführen, um Arm64 als Ziel zu verwenden. Für Arm64 können Sie Arm64- oder ARM64EC-Buildtools installieren. Weitere Informationen finden Sie unter Arm64 Visual Studio.

Für die .NET-Entwicklung ist .NET 6 oder höher erforderlich, um die Arm64-Plattform zu verwenden. Weitere Informationen finden Sie unter .NET-Unterstützung für macOS 11 und Windows 11 für Arm64 und x64.

So konfigurieren Sie ein Projekt für Arm64 und andere Plattformen

  1. Klicken Sie in der Menüleiste auf Build>Konfigurations-Manager.

  2. Wählen Sie in der Liste Aktive Projektmappenplattform eine Plattform als Zielplattform für die Projektmappe aus, und klicken Sie dann auf die Schaltfläche Schließen.

    1. Wählen Sie Neu aus, wenn die gewünschte Plattform nicht in der Liste Aktive Projektmappenplattform angezeigt wird. Nachdem Sie die Tools für eine bestimmte Plattform installiert haben, können Sie die neuen Projektmappen- und Projektkonfigurationen für diese Plattform hinzufügen.

      Das Dialogfeld Neue Projektmappenplattform wird angezeigt.

    2. Wählen Sie in der Liste Neue Plattform eingeben oder auswählen die gewünschte Plattform (Prozessorarchitektur) aus, z. B. ARM64.

      Screenshot: Auswahl einer neuen Plattform

      Hinweis

      Wenn Sie die Konfiguration neu benennen, müssen Sie möglicherweise die Einstellungen für die gewünschte Zielplattform im Projekt-Designer konfigurieren.

    3. Wenn Sie die Einstellungen aus der aktuellen Plattformkonfiguration kopieren möchten, wählen Sie diese aus, und wählen Sie anschließend die Schaltfläche OK aus.

Screenshot: Neue Projektmappenplattform und Projektplattform

So konfigurieren Sie ein Projekt für eine andere Plattform

  1. Klicken Sie in der Menüleiste auf Build>Konfigurations-Manager.

  2. Wählen Sie in der Liste Aktive Projektmappenplattform eine Plattform als Zielplattform für die Projektmappe aus, und klicken Sie dann auf die Schaltfläche Schließen.

    1. Wählen Sie Neu aus, wenn die gewünschte Plattform nicht in der Liste Aktive Projektmappenplattform angezeigt wird. Nachdem Sie die Tools für eine bestimmte Plattform installiert haben, können Sie die neuen Projektmappen- und Projektkonfigurationen für diese Plattform hinzufügen.

      Das Dialogfeld Neue Projektmappenplattform wird angezeigt.

    2. Wählen Sie in der Liste Neue Plattform eingeben oder auswählen die gewünschte Plattform (Prozessorarchitektur) aus, z. B. x64.

      Hinweis

      Wenn Sie die Konfiguration neu benennen, müssen Sie möglicherweise die Einstellungen für die gewünschte Zielplattform im Projekt-Designer konfigurieren.

    3. Wenn Sie die Einstellungen aus der aktuellen Plattformkonfiguration kopieren möchten, wählen Sie diese aus, und wählen Sie anschließend die Schaltfläche OK aus.

Hinweis

Der Plattformname Win32 wird für C++-Projekte verwendet und bedeutet x86. Visual Studio berücksichtigt sowohl Plattformen auf Projekt- als auch auf Projektmappenebene, wobei die Projektplattformen aus den sprachspezifischen Projektsystemen stammen. In C++-Projekten werden Win32 und x64 verwendet, aber in Projektmappenplattformen werden x86 und x64 verwendet. Wenn Sie x86 als Projektmappenkonfiguration wählen, wählt Visual Studio für C++-Projekte die Plattform Win32 aus. Um Plattformeinstellungen auf Projekt- und Projektmappenebene einzusehen, öffnen Sie den Konfigurations-Manager, und notieren Sie sich die beiden Plattformeinstellungen. Die Plattform auf Projektmappenebene wird in der Dropdownliste Aktive Projektmappenplattform angezeigt. Die Tabelle zeigt für jedes Projekt die Plattform auf Projektebene. Screenshot: Projektmappenplattform und Projektplattform

Zielplattformen auf der Projekt-Designer- oder Projekteigenschaften-Benutzeroberfläche

Die Benutzeroberfläche für den Projekt-Designer oder die Projekteigenschaften bietet auch eine Möglichkeit, Ihr Projekt auf verschiedene Plattformen auszurichten. Wenn Sie die gewünschte Zielplattform nicht in der Liste im Dialogfeld Neue Projektmappenplattform auswählen können, können Sie eine benutzerdefinierte Konfiguration erstellen und benennen und die Einstellungen für die gewünschte Zielplattform in Projekteigenschaften konfigurieren.

Die für diese Aufgabe erforderlichen Schritte sind je nach Programmiersprache unterschiedlich. Weitere Informationen finden Sie unter den folgenden Links:

Einstellung „32-Bit bevorzugen“

Die Einstellung 32-Bit bevorzugen auf der Seite Build des Projektdesigners für .NET Framework 4.5 oder höher behandelt den Fall, in dem Sie die AnyCPU-Konfiguration erstellen, aber möchten, dass Ihre Anwendung im 32-Bit-Modus ausgeführt wird, wenn sie auf Plattformen ausgeführt wird, die 32-Bit- und 64-Bit-Modi unterstützen. Wenn Sie das Kontrollkästchen aktivieren, wird die Buildeigenschaft PlatformTarget auf anycpu32bitpreferred gesetzt. Siehe Kommentare zu PlatformTarget für C# und /platform für Visual Basic.

Manuelles Bearbeiten der Projektdatei

Manchmal müssen Sie die Projektdatei für eine benutzerdefinierte Konfiguration manuell bearbeiten. Ein Beispiel dafür ist, wenn Sie Bedingungen verwenden, die in der IDE nicht angegeben werden können, z.B. ein Verweis, der für zwei verschiedene Plattformen unterschiedlich ist, oder eine Assembly, die für eine bestimmte Plattform registriert werden muss, um sie COM zur Verfügung zu stellen. Das Tool, das die Projektdatei verarbeitet, ist MSBuild.

Achtung

Das manuelle Bearbeiten einer C++-Projektdatei, die Sie in Visual Studio verwenden, wird nicht empfohlen.

COM-Registrierung

Wenn Sie eine .NET-Assembly erstellen und für COM verfügbar machen, registriert Visual Studio die Assembly mit einer bestimmten Plattformarchitektur, da es unterschiedliche Registrierungsspeicherorte für jede Plattformarchitektur gibt (z. B. x86 und x64). Wenn Ihre Assembly bereits auf eine bestimmte Plattform ausgerichtet ist, wird dies verwendet, aber wenn Sie eine .NET-Assembly registrieren, die für Any CPUerstellt wurde, registriert MSBuild sie standardmäßig für die aktuelle Runtime von MSBuild. Wenn Sie in Visual Studio kompilieren, ist das x64 in Visual Studio 2022 und höher und x86 in Visual Studio 2019 und niedriger. Wenn Sie die Plattformarchitektur mithilfe der zuvor in diesem Artikel beschriebenen Methoden festlegen oder eine andere PlatformTarget in der Projektdatei angeben, berücksichtigt MSBuild dies bei der Registrierung. Es gibt eine Eigenschaft, die Sie festlegen können, um dieses Verhalten außer Kraft zu setzen: RegisterAssemblyMSBuildArchitecture Sie können RegisterAssemblyMSBuildArchitecture auf die gewünschte Plattformarchitektur (z. B. x86 oder x64) festlegen, indem Sie sie einem PropertyGroup-Element auf oberster Ebene in der Projektdatei hinzufügen.

Verweisen auf x86- und x64-Assemblys und -DLLs

Möglicherweise verfügen Sie über eine .NET-Assembly oder -DLL mit x86- und x64-Versionen. Um das Projekt für die Verwendung dieser Verweise einzurichten, fügen Sie zunächst den Verweis hinzu, und öffnen Sie dann die Projektdatei, und bearbeiten Sie diese, um eine ItemGroup mit einer Bedingung hinzuzufügen, die auf die Konfiguration und die Zielplattform verweist. Angenommen, die Binärdatei, auf die Sie verweisen, ist ClassLibrary1, und es gibt unterschiedliche Pfade für Debug- und Releasekonfigurationen sowie x86- und x64-Versionen. Verwenden Sie dann vier ItemGroup-Elemente mit allen Kombinationen von Einstellungen wie folgt:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <Platforms>AnyCPU;x64;x86</Platforms>
  </PropertyGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x64\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Debug\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>
  
  <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86'">
    <Reference Include="ClassLibrary1">
      <HintPath>..\..\ClassLibrary1\ClassLibrary1\bin\x86\Release\netstandard2.0\ClassLibrary1.dll</HintPath>
    </Reference>
  </ItemGroup>
</Project>

Weitere Informationen zur Projektdatei finden Sie unter Referenz zum MSBuild-Projektdateischema.