Compartilhar via


Configurar projetos para plataformas de destino

O Visual Studio permite que você configure seus builds de aplicativo para direcionar plataformas diferentes (arquiteturas de processador), incluindo o Arm64 e outras plataformas. Você não precisa executar o Visual Studio em uma plataforma para criar para essa plataforma de destino. Para obter mais informações sobre o suporte do Arm64 no Visual Studio, consulte o Visual Studio em dispositivos alimentados por ARM. Para obter suporte à plataforma de 64 bits para desenvolvimento do .NET, consulte aplicativos de 64 bits.

Observação

O Visual Studio 2022 é executado como um aplicativo de 64 bits. Isso é totalmente separado das plataformas que você pode direcionar para seus projetos no Visual Studio. Você pode usar qualquer versão do Visual Studio para direcionar plataformas de 32 bits e 64 bits.

O Visual Studio permite que você configure seus builds de aplicativo para direcionar plataformas diferentes (arquiteturas de processador), como x86 e x64. Para obter suporte à plataforma de 64 bits para desenvolvimento do .NET, consulte aplicativos de 64 bits.

Observação

O Visual Studio é executado como um aplicativo de 32 bits. Isso é totalmente separado das plataformas que você pode direcionar para seus projetos no Visual Studio. Você pode usar qualquer versão do Visual Studio para direcionar plataformas de 32 bits e 64 bits.

Plataformas de destino com o Configuration Manager

O Configuration Manager fornece uma maneira de adicionar rapidamente uma nova plataforma como alvo do seu projeto. Se você selecionar uma das plataformas incluídas no Visual Studio, uma configuração será configurada para criar seu projeto para a plataforma selecionada.

Para direcionar algumas plataformas em um projeto C++ nativo, você precisa instalar as ferramentas de build para a plataforma. As ferramentas de build do C++ para plataformas x86 e x64 são instaladas com a carga de trabalho padrão do C++. Se você estiver direcionando outra arquitetura de processador, como Arm64, é necessário usar o Instalador do Visual Studio para instalar as ferramentas de construção para a plataforma antes de continuar. Confira Modificar o Visual Studio. Você não precisa executar o Visual Studio em um dispositivo Arm64 para atingir o Arm64. Para o Arm64, você pode instalar ferramentas de build do Arm64 ou do ARM64EC; consulte Arm64 Visual Studio.

Para o desenvolvimento em .NET, é necessário o .NET 6 ou posterior para ter como alvo a plataforma Arm64. Consulte o suporte do .NET para macOS 11 e Windows 11 para Arm64 e x64.

Para configurar um projeto para direcionar para o Arm64 e outras plataformas

  1. Na barra de menus, escolha Criar>Gerenciador de Configurações.

  2. Na lista de plataformas de solução ativa , escolha uma plataforma para a solução a ser direcionada e, em seguida, escolha o botão Fechar .

    1. Se a plataforma desejada não aparecer na lista de plataformas de solução ativa , escolha Novo. Depois de instalar as ferramentas para uma plataforma específica, você poderá adicionar as novas configurações de solução e projeto direcionadas a essa plataforma.

      A caixa de diálogo Nova plataforma de solução é exibida.

    2. No Tipo ou selecione a nova lista de plataformas , escolha a plataforma desejada (arquitetura do processador); por exemplo, ARM64.

      Captura de tela mostrando a escolha de uma nova plataforma.

      Observação

      Se você fornecer um novo nome à sua configuração, talvez seja necessário modificar as configurações no Designer de Projeto para direcionar a plataforma correta.

    3. Se você quiser copiar as configurações de uma configuração de plataforma atual, escolha-a e escolha o botão OK .

Captura de tela mostrando a nova plataforma de solução e a plataforma de projeto

Para configurar um projeto para direcionar uma plataforma diferente

  1. Na barra de menus, escolha Criar>Gerenciador de Configurações.

  2. Na lista de plataformas de solução ativa , escolha uma plataforma para a solução a ser direcionada e, em seguida, escolha o botão Fechar .

    1. Se a plataforma desejada não aparecer na lista de plataformas de solução ativa , escolha Novo. Depois de instalar as ferramentas para uma plataforma específica, você poderá adicionar as novas configurações de solução e projeto direcionadas a essa plataforma.

      A caixa de diálogo Nova plataforma de solução é exibida.

    2. No Tipo ou selecione a nova lista de plataformas , escolha a plataforma desejada (arquitetura do processador); por exemplo, x64.

      Observação

      Se você fornecer um novo nome à sua configuração, talvez seja necessário modificar as configurações no Designer de Projeto para direcionar a plataforma correta.

    3. Se você quiser copiar as configurações de uma configuração de plataforma atual, escolha-a e escolha o botão OK .

Observação

O nome da plataforma Win32 é usado para projetos C++ e significa x86. O Visual Studio considera plataformas de nível de projeto e plataformas de nível de solução e as plataformas de projeto vêm dos sistemas de projeto específicos da linguagem. Os projetos C++ usam Win32 e x64, mas as plataformas de solução usam x86 e x64. Quando você escolhe x86 como a configuração da solução, o Visual Studio seleciona a plataforma Win32 para projetos C++. Para ver as configurações da plataforma no nível do projeto e da plataforma no nível da solução, abra o Configuration Manager e anote as duas configurações da plataforma. A plataforma de nível de solução é exibida na lista suspensa Plataforma de Solução Ativa, e a tabela mostra a plataforma de nível de projeto para cada projeto. Captura de tela mostrando a plataforma de solução e a plataforma de projeto

Plataformas de destino na interface do usuário do Designer de Projetos ou Propriedades do Projeto

A interface do usuário do Designer de Projeto ou de Propriedades do Projeto também fornece uma maneira de alvejar diferentes plataformas para o seu projeto. Se a seleção de uma das plataformas incluídas na lista na caixa de diálogo Nova Plataforma de Solução não funcionar para sua solução, você poderá criar um nome de configuração personalizado e modificar as configurações nas Propriedades do Projeto para direcionar a plataforma correta.

A execução dessa tarefa varia de acordo com a linguagem de programação que você está usando. Para obter mais informações, consulte os links a seguir:

Preferir a configuração de 32 bits

A configuração Preferir 32 bits na página Build do designer de projeto para projetos do .NET Framework 4.5 ou posterior lida com o caso em que você está criando a AnyCPU configuração e deseja que seu aplicativo seja executado no modo de 32 bits quando ele for executado em plataformas que oferecem suporte tanto ao modo de 32 bits quanto ao de 64 bits. Se você habilitar a caixa de seleção, a propriedade de PlatformTarget build será definida como anycpu32bitpreferred. Consulte os comentários no PlatformTarget para C# e /platform para Visual Basic.

Editando manualmente o arquivo de projeto

Às vezes, você precisa editar manualmente o arquivo de projeto para alguma configuração personalizada. Um exemplo é quando você tem condições que não podem ser especificadas no IDE, como uma referência diferente para duas plataformas diferentes ou um assembly que deve ser registrado para uma plataforma específica para expô-la ao COM. A ferramenta que processa o arquivo de projeto é o MSBuild.

Cuidado

Não é recomendável editar manualmente um arquivo de projeto C++ que você está usando no Visual Studio.

Registro COM

Se você estiver criando um assembly do .NET e expondo-o ao COM, o Visual Studio registrará o assembly com uma arquitetura de plataforma específica, já que há locais de registro diferentes para cada arquitetura de plataforma (por exemplo, x86 e x64). Se o assembly já tiver como destino uma plataforma específica, isso será usado, mas se você estiver registrando um assembly .NET criado para Any CPU, o MSBuild usará como padrão registrá-lo no runtime atual do MSBuild. Se você estiver criando no Visual Studio, isso corresponde a x64 no Visual Studio 2022 e posterior e x86 no Visual Studio 2019 e anterior. Se você definir a arquitetura da plataforma usando os métodos descritos anteriormente neste artigo ou especificar um diferente PlatformTarget no arquivo de projeto, o MSBuild respeitará isso ao se registrar. Há uma propriedade que você pode definir para substituir esse comportamento. RegisterAssemblyMSBuildArchitecture Você pode definir RegisterAssemblyMSBuildArchitecture para a arquitetura de plataforma desejada (como x86 ou x64) adicionando-a a um elemento de nível PropertyGroup superior no arquivo de projeto.

Referenciamento de assemblies e DLLs x86 e x64

Você pode ter um assembly .NET ou DLL que tenha versões x86 e x64. Para configurar seu projeto para usar essas referências, primeiro adicione a referência e, em seguida, abra o arquivo de projeto e edite-o para adicionar uma ItemGroup condição que faça referência à configuração e à plataforma de destino. Por exemplo, suponha que o binário que você está fazendo referência seja ClassLibrary1 e haja caminhos diferentes para configurações de Depuração e Versão, bem como versões x86 e x64. Em seguida, use quatro ItemGroup elementos com todas as combinações de configurações, da seguinte maneira:

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

Para obter mais informações sobre o arquivo de projeto, consulte a referência de esquema de arquivo de projeto do MSBuild.