Compartilhar via


Definir como alvo várias versões e plataformas de estrutura

Usando o MSBuild, você pode compilar um aplicativo para ser executado em qualquer uma das várias versões do .NET Framework e em qualquer uma das várias plataformas do sistema. Por exemplo, você pode compilar um aplicativo para ser executado no .NET Framework 2.0 em uma plataforma de 32 bits e compilar o mesmo aplicativo para ser executado no .NET Framework 4.5 em uma plataforma de 64 bits.

Nota

Este artigo descreve um tipo mais antigo de multitargeting que se aplica a builds do .NET Framework nos quais um projeto pode ter como destino apenas uma estrutura e apenas uma plataforma por vez. No .NET Core, .NET 5 e versões posteriores, você pode usar uma forma mais recente de multitargeting com a propriedade TargetFrameworks (plural) em um arquivo de projeto. Quando você cria usando comandos CLI do .NET como dotnet build ou semelhantes, ou usando o Visual Studio após recarregar o projeto, sua compilação emprega o tipo mais recente de multitargeting, em que várias compilações ocorrem, uma para cada estrutura de destino listada. Consulte Estruturas de destino.

Estes são alguns dos recursos de direcionamento do MSBuild:

  • Você pode desenvolver um aplicativo direcionado a uma versão anterior do .NET Framework, por exemplo, as versões 2.0, 3.5 ou 4.

  • Você pode direcionar uma estrutura diferente do .NET Framework, por exemplo, o Silverlight Framework.

  • Você pode definir como destino um perfil de estrutura, que é um subconjunto predefinido de uma estrutura de destino.

  • Se um service pack para a versão atual do .NET Framework for lançado, você poderá utilizá-lo como alvo.

  • O direcionamento do MSBuild garante que um aplicativo use apenas a funcionalidade disponível na estrutura e na plataforma de destino.

Estrutura e plataforma de destino

Uma estrutura de destino é a versão do .NET Framework na qual um projeto foi criado para execução e uma plataforma de destino é a plataforma do sistema na qual o projeto foi criado para ser executado. Por exemplo, talvez você queira direcionar um aplicativo .NET Framework 2.0 para ser executado em uma plataforma de 32 bits compatível com a família de processadores 80x86 (x86). A combinação da estrutura de destino e da plataforma de destino é conhecida como o contexto de destino . Para saber mais, confira Estrutura de destino e plataforma de destino.

Conjunto de ferramentas (ToolsVersion)

Um Conjunto de Ferramentas coleta as ferramentas, as tarefas e os destinos usados para criar o aplicativo. Um conjunto de ferramentas inclui compiladores como csc.exe e vbc.exe, o arquivo de destino comum (microsoft.common.targets) e o arquivo de tarefas comuns (microsoft.common.tasks). O Conjunto de Ferramentas 4.5 pode ser usado para direcionar as versões do .NET Framework 2.0, 3.0, 3.5, 4 e 4.5. No entanto, o Conjunto de Ferramentas 2.0 só pode ser usado para direcionar o .NET Framework versão 2.0. Para obter mais informações, consulte Toolset (ToolsVersion).

Assemblies de referência

Os assemblies de referência especificados no Conjunto de Ferramentas ajudam você a projetar e criar um aplicativo. Esses assemblies de referência não apenas habilitam um build de destino específico, mas também restringem componentes e recursos no IDE do Visual Studio àqueles compatíveis com o destino. Para saber mais, confira Resolver assemblies em tempo de design.

Configurar destinos e tarefas

Você pode configurar destinos e tarefas do MSBuild para executar fora do processo com o MSBuild para que você possa direcionar contextos consideravelmente diferentes daquele em que você está executando. Por exemplo, você pode direcionar um aplicativo .NET Framework 2.0 de 32 bits enquanto o computador de desenvolvimento está em execução em uma plataforma de 64 bits com o .NET Framework 4.5. Para obter mais informações, consulte Configurar alvos e tarefas.

Solução de problemas

Você poderá encontrar erros se tentar fazer referência a um assembly que não faz parte do contexto de destino. Para obter mais informações sobre esses erros e o que fazer sobre eles, consulte Solucionar problemas de erros de direcionamento do .NET Framework.