Freigeben über


Konfigurieren von Projekten auf 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 zu erstellen. Weitere Informationen zur Arm64-Unterstützung in Visual Studio finden Sie unter Visual Studio auf ARM-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 ist völlig von den Plattformen getrennt, auf die Sie in Visual Studio für Ihre Projekte abzielen können. Sie können jede Version von Visual Studio verwenden, um sowohl 32-Bit- als auch 64-Bit-Plattformen als Ziel zu verwenden.

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 ist völlig von den Plattformen getrennt, auf die Sie in Visual Studio für Ihre Projekte abzielen können. Sie können jede Version von Visual Studio verwenden, um sowohl 32-Bit- als auch 64-Bit-Plattformen als Ziel zu verwenden.

Plattformen ausrichten mit dem Configuration Manager

Der Configuration Manager bietet Ihnen eine Möglichkeit, schnell eine neue Plattform für Ihr Projekt hinzuzufü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 systemeigenen C++-Projekt zu verwenden, müssen Sie die Buildtools für die 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 das Visual Studio-Installationsprogramm verwenden, um die Buildtools für die Plattform zu installieren, 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-Buildtools oder ARM64EC Buildtools installieren; siehe Arm64 Visual Studio.

Für .NET-Entwicklung ist .NET 6 oder höher erforderlich, um auf die Arm64-Plattform zu abzielen. Siehe .NET-Support für macOS 11 und Windows 11 für Arm64 und x64.

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

  1. Wählen Sie auf der Menüleiste "Build Configuration Manager> aus.

  2. Wählen Sie in der Liste " Aktive Lösungsplattform " eine Plattform für die Ziellösung aus, und klicken Sie dann auf die Schaltfläche " Schließen ".

    1. Wenn die gewünschte Plattform nicht in der Liste der aktiven Lösungsplattform angezeigt wird, wählen Sie "Neu" aus. Nachdem Sie die Tools für eine bestimmte Plattform installiert haben, können Sie die neuen Lösungs- und Projektkonfigurationen hinzufügen, die auf diese Plattform abzielen.

      Das Dialogfeld Neue Projektmappenplattform wird angezeigt.

    2. Wählen Sie in der Liste "Typ" oder "Neue Plattform " die gewünschte Plattform (Prozessorarchitektur) aus. beispiel: ARM64.

      Screenshot der Auswahl einer neuen Plattform.

      Hinweis

      Wenn Sie Ihrer Konfiguration einen neuen Namen geben, müssen Sie möglicherweise die Einstellungen im Project Designer so ändern, dass sie auf die richtige Plattform ausgerichtet sind.

    3. Wenn Sie die Einstellungen aus einer aktuellen Plattformkonfiguration kopieren möchten, wählen Sie sie aus, und klicken Sie dann auf die Schaltfläche "OK ".

Screenshot der neuen Lösungsplattform und Projektplattform

So konfigurieren Sie ein Projekt für eine andere Plattform

  1. Wählen Sie auf der Menüleiste "Build Configuration Manager> aus.

  2. Wählen Sie in der Liste " Aktive Lösungsplattform " eine Plattform für die Ziellösung aus, und klicken Sie dann auf die Schaltfläche " Schließen ".

    1. Wenn die gewünschte Plattform nicht in der Liste der aktiven Lösungsplattform angezeigt wird, wählen Sie "Neu" aus. Nachdem Sie die Tools für eine bestimmte Plattform installiert haben, können Sie die neuen Lösungs- und Projektkonfigurationen für diese Plattform hinzufügen.

      Das Dialogfeld Neue Projektmappenplattform wird angezeigt.

    2. Wählen Sie in der Liste "Typ" oder "Neue Plattform " die gewünschte Plattform (Prozessorarchitektur) aus. beispiel: x64.

      Hinweis

      Wenn Sie Ihrer Konfiguration einen neuen Namen geben, müssen Sie möglicherweise die Einstellungen im Project Designer so ändern, dass sie auf die richtige Plattform ausgerichtet sind.

    3. Wenn Sie die Einstellungen aus einer aktuellen Plattformkonfiguration kopieren möchten, wählen Sie sie aus, und klicken Sie dann auf die Schaltfläche "OK ".

Hinweis

Der Name der Win32-Plattform wird für C++-Projekte verwendet und bedeutet x86. Visual Studio berücksichtigt sowohl Plattformen auf Projektebene als auch Plattformen auf Lösungsebene, und die Projektplattformen stammen aus den sprachspezifischen Projektsystemen. C++-Projekte verwenden Win32 und x64, aber die Lösungsplattformen verwenden x86 und x64. Wenn Sie x86 als Lösungskonfiguration auswählen, wählt Visual Studio die Win32-Plattform für C++-Projekte aus. Um sowohl die Plattformeinstellungen auf Projektebene als auch die Plattformeinstellungen auf Lösungsebene anzuzeigen, öffnen Sie Configuration Manager , und notieren Sie sich die beiden Plattformeinstellungen. Die Plattform auf Lösungsebene wird im Dropdownmenü " Aktive Lösungsplattform " angezeigt, und die Tabelle zeigt die Plattform auf Projektebene für jedes Projekt an. Screenshot mit Lösungsplattform und Projektplattform

Zielplattformen in der Oberfläche von "Project Designer" oder "Project Properties"

Die Benutzeroberfläche von Project Designer oder Project Properties bietet auch eine Möglichkeit, verschiedene Plattformen mit Ihrem Projekt zu erreichen. Wenn Sie eine der Plattformen auswählen, die in der Liste im Dialogfeld Neue Lösungsplattform enthalten sind und dies nicht für Ihre Lösung funktioniert, können Sie einen benutzerdefinierten Konfigurationsnamen erstellen und die Einstellungen in Projekteigenschaften so ändern, dass sie auf die richtige Plattform ausgerichtet sind.

Die Ausführung dieser Aufgabe variiert je nach der verwendeten Programmiersprache. Weitere Informationen finden Sie unter den folgenden Links:

32-Bit-Einstellung 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 Sie 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 PlatformTarget Build-Eigenschaft 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 ist, wenn Sie Bedingungen haben, die nicht in der IDE angegeben werden können, z.B. einen Verweis, der für zwei verschiedene Plattformen unterschiedlich ist, oder eine Assembly, die für eine bestimmte Plattform registriert werden muss, um sie für COM verfügbar zu machen. Das Tool, das die Projektdatei verarbeitet, ist MSBuild.

Vorsicht

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 für eine bestimmte 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 diese verwendet, aber wenn Sie eine .NET-Assembly registrieren, die für Any CPU erstellt wurde, wird MSBuild standardmäßig für die zurzeit von MSBuild verwendete Laufzeit registriert. Wenn Sie in Visual Studio erstellen, ist das x64 in Visual Studio 2022 oder höher und x86 in Visual Studio 2019 oder früher. Wenn Sie die Plattformarchitektur mithilfe der 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 (wie x86 oder x64) festlegen, indem Sie es zu einem PropertyGroup-Element auf oberster Ebene in der Projektdatei hinzufügen.

Verweisen auf x86- und x64-Assemblies und DLLs

Möglicherweise verfügen Sie über eine .NET-Assembly oder DLL mit x86- und x64-Versionen. Um Ihr Projekt für die Verwendung dieser Verweise einzurichten, fügen Sie zuerst den Verweis hinzu, und öffnen Sie dann die Projektdatei, und bearbeiten Sie es, um eine ItemGroup Bedingung hinzuzufügen, die sowohl auf die Konfiguration als auch auf die Zielplattform verweist. Angenommen, die Binärdatei, auf die Sie verweisen, ist ClassLibrary1, und es gibt verschiedene 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 MSBuild-Projektdateischemareferenz.