Instalowanie zestawu .NET SDK lub środowiska uruchomieniowego platformy .NET za pomocą przystawki

Użyj pakietu Snap, aby zainstalować zestaw SDK platformy .NET lub środowisko uruchomieniowe platformy .NET. Przystawki to świetna alternatywa dla menedżera pakietów wbudowanego w dystrybucję systemu Linux. W tym artykule opisano sposób instalowania platformy .NET za pomocą przystawki.

Przystawka to pakiet aplikacji i jej zależności, które działają bez modyfikacji w wielu różnych dystrybucjach systemu Linux. Przystawki można odnajdywać i instalować ze sklepu Snap Store. Aby uzyskać więcej informacji na temat przystawki, zobacz Wprowadzenie do przystawki.

Ważne

Pakiety przystawki nie są obsługiwane w programie WSL2 w systemie Windows. Alternatywnie użyj skryptudotnet-install lub menedżera pakietów dla określonej dystrybucji WSL2. Nie jest to zalecane, ale możesz spróbować włączyć przystawkę z nieobsługiwanym obejściem z forów snapcraft.

Przestroga

Instalacje przystawki platformy .NET mogą mieć problemy z uruchamianiem narzędzi .NET. Jeśli chcesz użyć narzędzi platformy .NET, zalecamy zainstalowanie platformy .NET przy użyciu skryptudotnet-install lub menedżera pakietów dla określonej dystrybucji systemu Linux.

Znany jest problem polegający na tym, że dotnet watch polecenie nie działa, gdy platforma .NET jest zainstalowana za pośrednictwem przystawki.

Jeśli zamierzasz użyć narzędzi platformy .NET lub dotnet watch polecenia, zalecamy zainstalowanie platformy .NET przy użyciu skryptudotnet-install.

Wydania platformy .NET

Istnieją dwa typy obsługiwanych wersji, wersje long term support (LTS) lub standard term support (STS). Jakość wszystkich wydań jest taka sama. Jedyną różnicą jest długość wsparcia. Wersje LTS otrzymują bezpłatną pomoc techniczną i poprawki przez 3 lata. Wersje stS otrzymują bezpłatną pomoc techniczną i poprawki przez 18 miesięcy. Aby uzyskać więcej informacji, zobacz Zasady pomocy technicznej platformy .NET.

W poniższej tabeli wymieniono stan obsługi każdej wersji platformy .NET (i platformy .NET Core):

✔️ Obsługiwane ❌ Nieobsługiwane
7 (STS) 5
6 (LTS) 3,1
3.0
2,2
2.1
2,0
1,1
1.0

Zestaw SDK lub środowisko uruchomieniowe

Zainstaluj zestaw SDK (obejmujący środowisko uruchomieniowe), jeśli chcesz tworzyć aplikacje platformy .NET. Ewentualnie, jeśli musisz uruchamiać tylko aplikacje, zainstaluj środowisko uruchomieniowe. Jeśli instalujesz środowisko uruchomieniowe, zalecamy zainstalowanie środowiska uruchomieniowego ASP.NET Core, ponieważ obejmuje on środowiska uruchomieniowe platformy .NET i ASP.NET Core.

dotnet --list-sdks Użyj poleceń idotnet --list-runtimes, aby zobaczyć, które wersje są zainstalowane. Aby uzyskać więcej informacji, zobacz Jak sprawdzić, czy platforma .NET jest już zainstalowana.

Instalacja zestawu SDK

Pakiety przystawki dla zestawu .NET SDK są publikowane w tym samym identyfikatorze: dotnet-sdk. Określoną wersję zestawu SDK można zainstalować, określając kanał. Zestaw SDK zawiera odpowiednie środowisko uruchomieniowe. W poniższej tabeli wymieniono kanały:

Wersja platformy .NET Przyciąganie pakietu lub kanału
7 (STS) 7.0 lub latest/stable
6 (LTS) 6.0 lub lts/stable

Użyj polecenia , snap install aby zainstalować pakiet przystawki zestawu SDK platformy .NET. Użyj parametru , --channel aby wskazać, która wersja ma zostać zainstalowana. Jeśli ten parametr zostanie pominięty, latest/stable zostanie użyty. W tym przykładzie określono: 7.0

sudo snap install dotnet-sdk --classic --channel=7.0

Następnie zarejestruj dotnet polecenie dla systemu za snap alias pomocą polecenia :

sudo snap alias dotnet-sdk.dotnet dotnet

To polecenie jest sformatowane jako: sudo snap alias {package}.{command} {alias}. Możesz wybrać dowolną {alias} nazwę. Można na przykład nazwać polecenie po zainstalowaniu określonej wersji przez przystawkę: sudo snap alias dotnet-sdk.dotnet dotnet70. Gdy używasz polecenia dotnet70, wywołasz tę konkretną wersję platformy .NET. Jednak wybór innego aliasu jest niezgodny z większością samouczków i przykładów, ponieważ oczekuje dotnet się użycia polecenia.

Instalowanie środowiska uruchomieniowego

Pakiety przystawki dla środowiska uruchomieniowego platformy .NET są publikowane w ramach własnego identyfikatora pakietu. W poniższej tabeli wymieniono identyfikatory pakietów:

Wersja platformy .NET Przyciąganie pakietu
7 (STS) dotnet-runtime-70
6 (LTS) dotnet-runtime-60
5 dotnet-runtime-50
3,1 dotnet-runtime-31
3.0 dotnet-runtime-30
2,2 dotnet-runtime-22
2.1 dotnet-runtime-21

Użyj polecenia , snap install aby zainstalować pakiet przystawki środowiska uruchomieniowego platformy .NET. W tym przykładzie zainstalowano program .NET 7:

sudo snap install dotnet-runtime-70 --classic

Następnie zarejestruj dotnet polecenie dla systemu za snap alias pomocą polecenia :

sudo snap alias dotnet-runtime-70.dotnet dotnet

Polecenie jest sformatowane jako: sudo snap alias {package}.{command} {alias}. Możesz wybrać dowolną {alias} nazwę. Można na przykład nazwać polecenie po zainstalowaniu określonej wersji przez przystawkę: sudo snap alias dotnet-runtime-70.dotnet dotnet70. W przypadku korzystania z polecenia dotnet70wywołasz określoną wersję platformy .NET. Jednak wybranie innego aliasu jest niezgodne z większością samouczków i przykładów, ponieważ oczekuje dotnet się, że polecenie będzie dostępne.

Eksportowanie lokalizacji instalacji

Zmienna DOTNET_ROOT środowiskowa jest często używana przez narzędzia do określania miejsca instalacji platformy .NET. Po zainstalowaniu platformy .NET za pomocą przystawki ta zmienna środowiskowa nie jest skonfigurowana. W profilu należy skonfigurować zmienną środowiskową DOTNET_ROOT . Ścieżka do przystawki używa następującego formatu: /snap/{package}/current. Jeśli na przykład zainstalowano przystawkę, użyj następującego dotnet-sdk polecenia, aby ustawić zmienną środowiskową na miejsce, w którym znajduje się platforma .NET:

export DOTNET_ROOT=/snap/dotnet-sdk/current

Porada

export Poprzednie polecenie ustawia tylko zmienną środowiskową dla sesji terminalu, w której została uruchomiona.

Profil powłoki można edytować, aby trwale dodać polecenia. Istnieje wiele różnych powłok dostępnych dla systemu Linux i każdy z nich ma inny profil. Na przykład:

  • Powłoka Bash: ~/.bash_profile, ~/.bashrc
  • Powłoka Korn: ~/.kshrc lub .profile
  • Powłoka Z: ~/.zshrc lub .zprofile

Edytuj odpowiedni plik źródłowy dla powłoki i dodaj plik export DOTNET_ROOT=/snap/dotnet-sdk/current.

Błędy certyfikatu TLS/SSL

Po zainstalowaniu platformy .NET za pomocą przystawki możliwe, że w niektórych dystrybucjach certyfikaty TLS/SSL platformy .NET mogą nie zostać znalezione i może wystąpić błąd podczas restore:

Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
  Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]

Aby rozwiązać ten problem, ustaw kilka zmiennych środowiskowych:

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

Lokalizacja certyfikatu będzie się różnić w zależności od dystrybucji. Poniżej przedstawiono lokalizacje dystrybucji, w których wystąpił problem.

Dystrybucja Lokalizacja
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Opensuse /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt

Problemy z rozpoznawaniem sieci dotnet

Jest to typowe dla innych aplikacji, takich jak rozszerzenie OmniSharp dla Visual Studio Code, aby spróbować rozwiązać lokalizację zestawu .NET SDK. Zazwyczaj odbywa się to przez ustalenie, gdzie dotnet znajduje się plik wykonywalny. Zainstalowany zestaw SDK platformy .NET może mylić te aplikacje. Jeśli te aplikacje nie mogą rozwiązać problemu z zestawem .NET SDK, zostanie wyświetlony błąd podobny do jednego z następujących komunikatów:

  • Nie można odnaleźć zestawu SDK "Microsoft.NET.Sdk"
  • Nie można odnaleźć zestawu SDK "Microsoft.NET.Sdk.Web"
  • Nie można odnaleźć zestawu SDK "Microsoft.NET.Sdk.Razor"

Aby rozwiązać ten problem, symlink pliku wykonywalnego przystawki dotnet do lokalizacji, którą szuka program. Dwie typowe ścieżki dotnet , których szuka polecenie, to /usr/local/bin/dotnet i /usr/share/dotnet. Aby na przykład połączyć bieżący pakiet przystawki zestawu SDK platformy .NET, użyj następującego polecenia:

ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet

Możesz również przejrzeć te problemy z usługą GitHub, aby uzyskać informacje o tych problemach:

Alias dotnet

Istnieje możliwość, że w przypadku utworzenia aliasu dotnet dla zainstalowanej przystawki platformy .NET wystąpi konflikt. snap unalias dotnet Użyj polecenia , aby go usunąć, a następnie dodaj inny alias, jeśli chcesz.

Następne kroki