.NET Core - Escolhendo a versão do SDK


Hoje veremos como podemos escolher qual a versão do .NET Core SDK usar em um projeto.

Uma das grandes vantagens do .NET Core é que em cada nova versão, o .NET Core SDK é instalado separado da versão anterior, e, assim, o novo SDK, não afeta o SDK instalado anteriormente.

Para inspecionar todos os .NET Core SDKs que estão instalados na sua máquina (Windows 10) acesse a pasta:
c:\Program Files\dotnet\sdk

Na figura acima, vemos as diversas versões do SDK instaladas (no meu ambiente) sendo que a última versão do SDK é a versão 2.2.104.

O mesmo comportamento é válido para .NET Core runtime cujas versões podem ser inspecionadas na pasta:
 C:\Program Files\dotnet\shared\Microsoft.NETCore.App

Na figura acima é exibido todas as versões do .NET Core runtime instaladas no meu ambiente.

Qual a versão do SDK estou usando ?

Com tantas versões instaladas, qual a versão do .NET Core SDK estou usando afinal ?

Para saber a versão do SDK que você esta usando, abra um terminal de linha de comando e digite o comando:  dotnet --version

No prompt de comandos acionei o arquivo dotnet.exe que esta na pasta c:\Program Files\dotnet que vai exibir a versão do último SDK instalado.

Para visualizar todos os .NET Core SDKs instalados via linha de comando digite o comando: dotnet --list--sdks

Para visualizar todos os .NET Core runtime instalados via linha de comando digite o comando:
dotnet --list--runtimes

O comando dotnet --info vai listar os sdks e runtime instalados.

Como trocar a versão do .NET Core SDK ?

Quando você abre uma janela de comandos para criar um novo projeto , quando você digira o comando :
dotnet new <tipo_projeto>

Será criado um projeto com a versão mais atual do .NET Core SDK instalado, e, assim o  seu arquivo de projeto .csproj irá referenciar esta versão do SDK.

Na figura abaixos temos um exemplo deste comportamento:

Acompanhe o que foi feito:

Note que no arquivo de projeto temos a indicação que estamos usando a versão 2.2 do .NET Core.

Mas e se eu quiser trabalhar com outras versões do .NET Core SDK ? Como posso trocar de versão ?

Em outras palavras, quando eu digitar o comando dotnet no console, como posso controlar qual versão do SDK estou realmente usando ?

Controlando qual a versão do SDK usar

Podemos alternar facilmente entre as versões do .NET Core SDK instalados criando um arquivo global.json na pasta raiz do projeto no qual você vai trabalhar.

O arquivo global.json permite definir qual versão do .NET Core SDK é usada ao executar comandos do .NET Core CLI. A seleção do SDK do .NET Core é independente da especificação do runtime do seu projeto.

Abaixo um exemplo de definição do arquivo global.json onde definimos a versão 2.0.0 como a versão do SDK que vamos usar :

{
  "sdk": {
    "version": "2.0.0"
  }
}

Como o .NET Core  global.json é interpretado ?

Se nenhum arquivo global.json for encontrado, ou o arquivo global.json não especificar uma versão do SDK, a versão mais recente do SDK instalada será usada.

Se global.json especificar uma versão do SDK:

Para criar um arquivo global.json você pode usar o comando : dotnet new global.json

Este comando vai criar um arquivo global.json e vai definir no arquivo a versão mais atual do .NET Core SDK instalado.

Abaixo temos a ordem de execução dos comandos para criar o arquivo global.json para o projeto console criado no passo anterior:

Observe que:

  1. Eu listei o conteúdo da pasta demo do projeto
  2. E verifiquei que o arquivo global.json não existia
  3. A seguir invoquei o comando: dotnet new global.json
  4. O arquivo foi criado e definiu a versão 2.2.104 do SDK, ou seja a versão atual

Vamos supor que agora eu quero trabalhar com a versão 2.0.0 do .NET Core SDK.

Como eu faço para alterar a versão atual ?

Para alterar a versão basta usar o comando : dotnet new globaljson --sdk-version 2.0.0 --force

A figura acima mostra o resultado final da execução do comando onde vemos que a versão indicada no arquivo global.json agora é a versão 2.0.0.

E como eu faço para criar um global.json com uma versão específica diferente da versão mais atual ?

Vamos supor que eu quero vou criar um projeto usando a versão 2.03 do .NET Core SDK.

Para isso basta emitir o comando : dotnet new globaljson --sdk-version 2.0.3

Veja o exemplo a seguir:

  1. Criei uma pasta chamada demo1
  2. Entrei na pasta
  3. Criei o arquivo global.json para a versão 2.0.3 do SDK
  4. Listei o contéudo do arquivo global.json

Dessa forma, agora você pode controlar de forma bem simples qual a versão do SDK vai usar em seus projetos.

E a paz de Deus, que excede todo o entendimento, guardará os vossos corações e os vossos pensamentos em Cristo Jesus. Filipenses 4:7

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti