Visão geral do objetivo do quadro
No Visual Studio, você pode especificar a versão do .NET que você deseja que seu projeto direcione. A segmentação da estrutura ajuda a garantir que o aplicativo use apenas a funcionalidade disponível na versão da estrutura especificada. Para que os aplicativos do .NET Framework sejam executados em outro computador, a versão do framework que o aplicativo destina deve ser compatível com a versão do framework instalada no computador.
Uma solução Visual Studio pode conter projetos destinados a diferentes versões do .NET. No entanto, observe que você só pode compilar em relação a uma única versão do .NET usando condicionais de referência para uma única compilação ou criar binários diferentes para cada estrutura de destino. Para obter mais informações sobre estruturas de destino, consulte Estruturas de destino.
Dica
Você também pode segmentar aplicativos para diferentes plataformas. Para obter mais informações, consulte Multitargeting.
Funcionalidades de direcionamento do framework
A segmentação por estrutura inclui os seguintes recursos:
Quando você abre um projeto destinado a uma versão anterior da estrutura, o Visual Studio pode atualizar automaticamente o projeto ou deixar o destino as-is.
Quando você cria um projeto do .NET Framework, você pode especificar a versão do .NET Framework que você deseja segmentar.
Você pode direcionar várias estruturas em um único projeto.
Você pode direcionar uma versão diferente do .NET em cada um dos vários projetos na mesma solução.
Você pode alterar a versão do .NET que um projeto existente tem como alvo.
Quando altera a versão do .NET para o qual um projeto é direcionado, o Visual Studio faz todas as alterações necessárias a referências e arquivos de configuração.
Quando você trabalha em um projeto que se destina a uma versão anterior da estrutura, o Visual Studio altera dinamicamente o ambiente de desenvolvimento, da seguinte maneira:
Ele filtra itens na caixa de diálogo Adicionar Novo Item, na caixa de diálogo Adicionar Nova Referência e na caixa de diálogo Adicionar Referência de Serviço para omitir opções que não estão disponíveis na versão de destino.
Ele filtra controles personalizados no Toolbox para remover aqueles que não estão disponíveis na versão de destino e para mostrar apenas os controles de data mais up-toquando vários controles estiverem disponíveis.
Ele filtra IntelliSense para omitir recursos de idioma que não estão disponíveis na versão de destino.
Ele filtra as propriedades na janela Propriedades para omitir aquelas que não estão disponíveis na versão alvo.
Ele filtra as opções do menu para omitir opções que não estão disponíveis na versão de destino.
Para compilações, ele usa a versão do compilador e as opções do compilador que são apropriadas para a versão de destino.
Observação
- A segmentação por estrutura não garante que seu aplicativo será executado corretamente. Você deve testar a sua aplicação para garantir que ela seja executada na versão alvo.
- Não se pode ter como alvo versões do framework abaixo do .NET Framework 2.0.
Alterar a estrutura de destino
Em um projeto existente do Visual Basic, C# ou F#, você altera a versão de destino do .NET na caixa de diálogo de propriedades do projeto. Para obter informações sobre como alterar a versão de destino para projetos C++, consulte Como modificar a estrutura de destino e o conjunto de ferramentas da plataforma em vez disso.
No Explorador de Soluções , abra o menu de contexto do botão direito do mouse para o projeto que pretende alterar e, em seguida, escolha Propriedades.
Na coluna esquerda da janela de Propriedades, escolha o separador Aplicação.
Observação
Depois de criar um aplicativo UWP, não é possível alterar a versão de destino do Windows ou do .NET.
Na lista Target Framework, escolha a versão desejada.
Na caixa de diálogo de verificação exibida, escolha o botão Sim.
O projeto descarrega. Quando ele é recarregado, ele tem como alvo a versão .NET que você acabou de escolher.
No Explorador de Soluções , abra o menu de contexto do botão direito do rato do projeto que pretende alterar e escolha Propriedades.
Na coluna esquerda da janela Propriedades, escolha o separador Aplicativo.
Observação
Depois de criar um aplicativo UWP, não é possível alterar a versão de destino do Windows ou do .NET.
Na lista Target Framework, escolha a versão desejada.
Para um projeto .NET Framework, a caixa de diálogo exibida pode ser semelhante à seguinte captura de tela:
Para um projeto .NET, a caixa de diálogo pode ser semelhante à seguinte captura de tela:
Se uma caixa de diálogo de verificação for exibida, escolha o botão Sim.
O projeto descarrega. Quando ele é recarregado, ele tem como alvo a versão .NET que você acabou de escolher.
Segmentar várias estruturas
Com o .NET 5 e posterior, você pode criar um projeto para várias estruturas em uma única compilação editando manualmente o arquivo de projeto. Abra o arquivo de projeto e substitua a propriedade TargetFramework
por TargetFrameworks
e especifique sua lista de Target Framework Monikers (TFMs), separados por ponto-e-vírgula, como no código a seguir:
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
Consulte a lista de TFMs em estruturas de destino em projetos no estilo SDK.
Você deve recarregar o projeto depois de fazer essa alteração. Depois disso, se você abrir a janela Properties, na guia Application, poderá editar a lista de estruturas de destino.
Observação
Se o código contiver referências a uma versão do .NET diferente daquela que você destinou, mensagens de erro podem aparecer quando você compilar ou executar o código. Para resolver esses erros, modifique as referências. Consulte Solucionar erros de direcionamento do .NET.
Dica
Dependendo da estrutura de destino, ele pode ser representado das seguintes maneiras no arquivo de projeto:
- Para um aplicativo .NET Core:
<TargetFramework>netcoreapp2.1</TargetFramework>
- Para um aplicativo .NET Standard:
<TargetFramework>netstandard2.0</TargetFramework>
- Para um aplicativo .NET Framework:
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
Selecione uma versão da estrutura de destino
Quando você cria um projeto do .NET Framework, você pode selecionar a versão de destino do .NET Framework depois de selecionar um modelo de projeto. A lista de estruturas disponíveis inclui as versões de estrutura instaladas que são aplicáveis ao tipo de modelo selecionado. Para modelos de projeto que não são do .NET Framework, como os modelos .NET Core, a lista suspensa do Framework não aparece.
Se você optar por criar um projeto do .NET Framework, verá uma interface semelhante à captura de tela a seguir:
Se você optar por criar um projeto .NET, verá a interface do usuário (UI) semelhante às duas capturas de tela a seguir.
A primeira coisa que irá ver no ecrã é a caixa de diálogo Configurar o seu novo projeto.
A segunda tela que você verá é a opções adicionais caixa de diálogo.
Resolver referências de assemblagem do sistema e do utilizador
Para direcionar uma versão do .NET, você deve primeiro instalar as referências de assembly apropriadas. Você pode baixar pacotes de desenvolvedor para diferentes versões do .NET na página de downloads do .NET.
Para projetos do .NET Framework, a caixa de diálogo Adicionar Referência desabilita assemblies do sistema que não pertencem à versão de destino do .NET Framework para impedir a sua adição inadvertida a um projeto. (Assemblies de sistema são arquivos .dll incluídos numa versão do .NET Framework.) As referências que pertencem a uma versão do framework que é superior à versão alvo não serão resolvidas, e os controlos que dependem de tal referência não poderão ser adicionados. Se você quiser habilitar essa referência, redefina o destino do .NET Framework do projeto para um que inclua a referência.
Para obter mais informações sobre referências de montagem, consulte Resolução de montagens no momento de design.
Ativar LINQ
Quando você direciona o .NET Framework 3.5 ou posterior, uma referência a System.Core e uma importação de nível de projeto para System.Linq (somente no Visual Basic) são adicionadas automaticamente. Se você quiser usar recursos do LINQ, você também deve ativar Option Infer
(somente no Visual Basic). A referência e a importação são removidas automaticamente se você alterar o destino para uma versão anterior do .NET Framework. Para obter mais informações, consulte Trabalhar com o LINQ.