Como instalar várias versões do .Net SDK no Ubuntu

Como instalar várias versões do .Net SDK no Ubuntu

Estou tentando construir um aplicativo .Net que requer uma versão específica do .Net SDK, a saber:"version": "2.2.107"

Uma atualização recente do apt atualizou a versão instalada do .Net SDK para a versão mais recente disponível, que é 2.2.300.

É possível instalar várias versões do mesmo SDK?

Posso ter várias versões secundárias do SDK instaladas, conforme mostrado aqui

$ dotnet --list-sdks
2.1.700 [/usr/share/dotnet/sdk]
2.2.300 [/usr/share/dotnet/sdk]

Estou tentando evitar a necessidade de desinstalar minha versão atual instalada apenas para criar este aplicativo.

Como observação lateral, a página de download da Microsoft não fornece instruções para instalar uma versão específica, o que suspeito ser um bug. Os comandos mostrados sempre instalarão a versão mais recente, mesmo que você acesse essa página clicando na versão que realmente deseja instalar.

https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-2.2.107

Responder1

Todo gerenciador de pacotes como APT ou RPM lida com a versão mais recente (e apenas a mais nova) do pacote. Aplica-se a pacotes .Net Core, portanto você não pode ter versões mais antigas e mais recentes do pacote ao mesmo tempo. A Microsoft preparou um script para instalar binários .Net Core (.Net Core, ASP.NET Core SDKs e Runtimes) sem gerenciadores de pacotes. Você pode baixar este script aqui:

https://dot.net/v1/dotnet-install.sh

Com este script você pode especificar qual versão deseja instalar (opção -v ou –version) e onde deseja instalar os binários (opções -i ou –install-dir).

  • Desinstale os pacotes existentes com “apt remove dotnet-”,
  • Instale os binários escolhidos especificados com a opção “—version” na mesma pasta (/usr/share/dotnet).

O script é muito sofisticado e pode ser executado com muito mais opções. Especifique “—help” na primeira execução para ler sobre isso. Aviso: o script adicionará a pasta de instalação à variável de ambiente $PATH atual, mas não ao arquivo de perfil do seu shell. Você deve fazer isso manualmente.

Responder2

O problema está no gerenciador de pacotes que desinstala a versão mais antiga antes de instalar a mais recente. Você pode usar scripts de instalação de botnet fornecidos pela Microsoft para buscar e instalar pacotes binários dotnet independentemente do gerenciador de pacotes. Todas as instruções você encontra aqui: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script

informação relacionada