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 dotnet70
wywoł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:
- Narzędzie rozpoznawania zestawu SDK nie działa z instalacjami przystawek zestawu SDK w systemie Linux
- Nie można odnaleźć zainstalowanych zestawów SDK platformy .NET
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.