Configurare progetti per le piattaforme di destinazione

Visual Studio consente di configurare le compilazioni dell'applicazione per piattaforme diverse (architetture del processore), tra cui Arm64 e altre piattaforme. Non è necessario eseguire Visual Studio in una piattaforma per creare per tale piattaforma di destinazione. Per altre informazioni sul supporto arm64 in Visual Studio, vedere Visual Studio nei dispositivi basati su ARM. Per il supporto della piattaforma a 64 bit per lo sviluppo .NET, vedere Applicazioni a 64 bit.

Nota

Visual Studio 2022 viene eseguito come applicazione a 64 bit. Questa operazione è completamente separata dalle piattaforme che è possibile scegliere come destinazione per i progetti in Visual Studio. È possibile usare qualsiasi versione di Visual Studio per usare piattaforme a 32 bit e a 64 bit.

Visual Studio consente di configurare le compilazioni dell'applicazione per piattaforme diverse (architetture del processore), ad esempio x86 e x64. Per il supporto della piattaforma a 64 bit per lo sviluppo .NET, vedere Applicazioni a 64 bit.

Nota

Visual Studio viene eseguito come applicazione a 32 bit. Questa operazione è completamente separata dalle piattaforme che è possibile scegliere come destinazione per i progetti in Visual Studio. È possibile usare qualsiasi versione di Visual Studio per usare piattaforme a 32 bit e a 64 bit.

Individuazione delle piattaforme di destinazione con Gestione configurazione

La Gestione configurazione consente di aggiungere rapidamente una nuova piattaforma di destinazione al progetto. Se si seleziona una delle piattaforme incluse in Visual Studio, viene configurata una configurazione per compilare il progetto per la piattaforma selezionata.

Per definire come destinazione alcune piattaforme in un progetto C++ nativo, è necessario installare gli strumenti di compilazione per la piattaforma. Gli strumenti di compilazione C++ per le piattaforme x86 e x64 vengono installati con il carico di lavoro C++ predefinito. Se si usa un'altra architettura del processore, ad esempio Arm64, è necessario usare il Programma di installazione di Visual Studio per installare gli strumenti di compilazione per la piattaforma prima di continuare. Vedere Modificare Visual Studio. Non è necessario eseguire Visual Studio in un dispositivo Arm64 come destinazione arm64. Per Arm64, è possibile installare gli strumenti di compilazione arm64 o ARM64EC strumenti di compilazione. Vedere Arm64 Visual Studio.

Per lo sviluppo .NET, è necessario .NET 6 o versione successiva per la piattaforma Arm64. Vedere Supporto di .NET per macOS 11 e Windows 11 per Arm64 e x64.

Per configurare un progetto per arm64 e altre piattaforme

  1. Nella barra dei menu scegliere Compilazione>Gestione configurazione.

  2. Nell'elenco Piattaforma soluzione attiva scegliere una piattaforma per la soluzione di destinazione e quindi scegliere il pulsante Chiudi .

    1. Se la piattaforma non compare nell'elenco Piattaforma soluzione attiva, scegliere Nuovo. Dopo aver installato gli strumenti per una determinata piattaforma, sarà possibile aggiungere la nuova soluzione e le configurazioni del progetto destinate a tale piattaforma.

      Verrà visualizzata la finestra di dialogo Nuova piattaforma soluzione.

    2. Nell'elenco Tipo o selezionare la nuova piattaforma scegliere la piattaforma desiderata (architettura del processore), ad esempio ARM64.

      Screenshot showing choosing a new platform.

      Nota

      Se si specifica un nuovo nome per la configurazione, potrebbe essere necessario modificare le impostazioni in Creazione progetti per la piattaforma corretta.

    3. Se si vuole copiare le impostazioni da una configurazione di piattaforma corrente, selezionarla e quindi fare clic sul pulsante OK.

Screenshot showing the new solution platform and project platform

Per configurare un progetto per una piattaforma diversa

  1. Nella barra dei menu scegliere Compilazione>Gestione configurazione.

  2. Nell'elenco Piattaforma soluzione attiva scegliere una piattaforma per la soluzione di destinazione e quindi scegliere il pulsante Chiudi .

    1. Se la piattaforma non compare nell'elenco Piattaforma soluzione attiva, scegliere Nuovo. Dopo aver installato gli strumenti per una determinata piattaforma, sarà possibile aggiungere la nuova soluzione e le configurazioni del progetto destinate a tale piattaforma.

      Verrà visualizzata la finestra di dialogo Nuova piattaforma soluzione.

    2. Nell'elenco Tipo o selezionare la nuova piattaforma scegliere la piattaforma desiderata (architettura del processore), ad esempio x64.

      Nota

      Se si specifica un nuovo nome per la configurazione, potrebbe essere necessario modificare le impostazioni in Creazione progetti per la piattaforma corretta.

    3. Se si vuole copiare le impostazioni da una configurazione di piattaforma corrente, selezionarla e quindi fare clic sul pulsante OK.

Nota

Il nome della piattaforma Win32 viene usato per i progetti C++ e significa x86. Visual Studio considera piattaforme a livello di progetto e piattaforme a livello di soluzione e le piattaforme di progetto provengono dai sistemi di progetto specifici del linguaggio. I progetti C++ usano Win32 e x64, ma le piattaforme della soluzione usano x86 e x64. Quando si sceglie x86 come configurazione della soluzione, Visual Studio seleziona la piattaforma Win32 per i progetti C++. Per visualizzare le impostazioni della piattaforma a livello di progetto e della piattaforma a livello di soluzione, aprire Configuration Manager e prendere nota delle due impostazioni della piattaforma. La piattaforma a livello di soluzione viene visualizzata nell'elenco a discesa Piattaforma soluzione attiva e la tabella mostra la piattaforma a livello di progetto per ogni progetto. Screenshot showing solution platform and project platform

Piattaforme di destinazione nell'interfaccia utente di Project Designer o Project Properties

L'interfaccia utente di Project Designer o Project Properties offre anche un modo per fare riferimento a piattaforme diverse con il progetto. Se la selezione di una delle piattaforme incluse nell'elenco nella finestra di dialogo Nuova piattaforma soluzione non funziona per la soluzione, è possibile creare un nome di configurazione personalizzato e modificare le impostazioni in Proprietà progetto per impostare come destinazione la piattaforma corretta.

L'esecuzione di questa attività varia in base al linguaggio di programmazione in uso. Per altre informazioni, vedi gli argomenti seguenti:

Modifica manuale del file di progetto

In alcuni casi è necessario modificare manualmente il file di progetto per applicare una configurazione personalizzata. Un esempio è quando si dispone di condizioni che non possono essere specificate nell'IDE, ad esempio un riferimento diverso per due piattaforme diverse o un assembly che deve essere registrato per una determinata piattaforma per esporlo a COM. Lo strumento che elabora il file di progetto è MSBuild.

Attenzione

La modifica manuale di un file di progetto C++ in uso in Visual Studio non è consigliata.

Registrazione COM

Se si compila un assembly .NET e lo si espone a COM, Visual Studio registra l'assembly con un'architettura di piattaforma specifica, poiché sono presenti percorsi del Registro di sistema diversi per ogni architettura della piattaforma ( ad esempio e x86x64). Se l'assembly è già destinato a una piattaforma specifica, questa viene usata, ma se si registra un assembly .NET compilato per Any CPU, MSBuild lo registra per impostazione predefinita per il runtime corrente di MSBuild. Se si sta creando in Visual Studio, si x64 trova in Visual Studio 2022 e versioni successive e x86 in Visual Studio 2019 e versioni precedenti. Se si imposta l'architettura della piattaforma usando i metodi descritti in precedenza in questo articolo o si specifica un valore diverso PlatformTarget nel file di progetto, MSBuild rispetterà tale impostazione durante la registrazione. È possibile impostare una proprietà per eseguire l'override di questo comportamento, RegisterAssemblyMSBuildArchitecture. È possibile impostare RegisterAssemblyMSBuildArchitecture l'architettura della piattaforma desiderata, ad esempio x86 o , x64aggiungendola a un elemento di primo livello PropertyGroup nel file di progetto.

Riferimento ad assembly e DLL x86 e x64

Potrebbe essere disponibile un assembly o una DLL .NET con entrambe le versioni x86 e x64. Per configurare il progetto in modo da usare questi riferimenti, aggiungere prima di tutto il riferimento, quindi aprire il file di progetto e modificarlo per aggiungere un ItemGroup con una condizione che fa riferimento sia alla configurazione che alla piattaforma di destinazione. Si supponga, ad esempio, che il file binario a cui si fa riferimento sia ClassLibrary1 e che siano presenti percorsi diversi per le configurazioni di debug e versione, nonché le versioni x86 e x64. Usare quindi quattro elementi ItemGroup con tutte le combinazioni di impostazioni, come indicato di seguito:

<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>

Per altre informazioni sul file di progetto, vedere Informazioni di riferimento sullo schema del file di progetto di MSBuild.