[dotnet] Jak zainstalować różne wersje SDK

juniordevops.pl 5 lat temu

W tym wpisie chciałbym się podzielić wiedzą jak w Linuxie zainstalować obok siebie różne wersję SDK i z nich korzystać

Po pierwsze sprawdźmy co mamy już zainstalowane w naszym systemie, komendą dotnet --list-sdks

lukasz@lukasz-Vostro-5568:~/test$ dotnet --list-sdks 2.1.301 [/usr/share/dotnet/sdk]

Teraz musimy pobrać wersje SDK przy ponocy skryptu dotnet-install.sh który znajduję się tutaj. Możecie zapoznać się szczegółowo z możliwościami tego skryptu na tej stornie.

Gdy już pobierzemy skrypt uruchomimy go z odpowiednia flagą --version, gdzie wskażemy numer wersji którą chcemy zainstalować.

Jednakże wszystkie wersje pobrane w ten sposób nie instalują się globalnie. Są dostępne z poziomu aktualnie zalogowanego użytkownika i znajdują się w folderze /home/[user]/.dotnet/sdk

Na stronie https://dotnet.microsoft.com/download/dotnet-core/2.1 możecie podejrzeć dostępne stabilne wersje. A instalujemy je w ten sposób:

./dotnet-install.sh --version 2.1.402 dotnet-install: Downloading link: https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.402/dotnet-sdk-2.1.402-linux-x64.tar.gz dotnet-install: Extracting zip from https://dotnetcli.azureedge.net/dotnet/Sdk/2.1.402/dotnet-sdk-2.1.402-linux-x64.tar.gz dotnet-install: Adding to current process PATH: `/home/lukasz/.dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Installation finished successfully.

Gdy już dostaniemy komunikat iż wszystko ok, przyjdzmy do naszej aplikacji napisanej w dotnetcie i swtó©zymy globalny plik Json w którym wybierzemy wersje jaką chcemy użyć do zbudowania aplikacji

dotnet new globaljson

Zwartość pliku global.json

{ "sdk": { "version": "2.1.300" } }

Gdy zmienimy wersje aktualną 2.1.300 na 2.1.402 dostaniemy błąd:

lukasz@lukasz-Vostro-5568:~/test$ dotnet run A compatible SDK version for global.json version: [2.1.500] from [/home/lukasz/test/global.json] was not found Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

To dlatego iż ścieżka PATH komendy dotnet wskazuję lokalizację /usr/share/dotnet/ a nie tą gdzie aktualny uzytkownik trzyma pliki binarne SDK. Dopiszemy do zmiennej środowiskowej PATH odpowiednia ścieżkę:

export PATH=/home/[user]/.dotnet:$PATH

Sprawdźmy czy polecenie wylistowania wszystkich SDK wskazuję nową lokalizację i widać pobraną wersję 2.1.402:

lukasz@lukasz-Vostro-5568:~/.dotnet/sdk$ dotnet --list-sdks 2.1.402 [/home/lukasz/.dotnet/sdk] 2.1.500 [/home/lukasz/.dotnet/sdk] 2.2.100-preview2-009404 [/home/lukasz/.dotnet/sdk]

Powinno wszystko działać

Podsumowanie
Fajna sztuczka, dowiedziałem się jak mieć większą kontrole nad środowiskiem developerskim. Trafiłem na post Scott Hanselman’a i już się cieszyłem, iż będę mógł bawić się najnowszymi wersjami czyli prieview
jednakże ten sposób nie pozwala na takie podejście. Jak tylko się dowiem jak tego dokonać, opiszę dla Was ten proces.

Link do Bloga Scoota i jego postu https://www.hanselman.com/blog/SideBySideUserScopedNETCoreInstallationsOnLinuxWithDotnetinstallsh.aspx

Idź do oryginalnego materiału