Instalowanie zestawu SDK platformy .NET za pomocą przystawki
W tym artykule opisano sposób instalowania pakietu przystawki zestawu SDK platformy .NET. Pakiety przyciągania zestawu .NET SDK są dostarczane i obsługiwane przez firmę Canonical. Przystawki to świetna alternatywa dla menedżera pakietów wbudowanego w dystrybucję systemu Linux.
Przystawka to pakiet aplikacji i jej zależności, które działają 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 Przewodnik Szybki start.
Uwaga
Instalacje przyciągania 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 skryptu dotnet-install
lub menedżera pakietów dla określonej dystrybucji systemu Linux.
Jest to znany 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 .NET lub dotnet watch
polecenia, zalecamy zainstalowanie platformy .NET przy użyciu skryptudotnet-install
.
Wymagania wstępne
- Dystrybucja systemu Linux, która obsługuje przystawkę.
snapd
demon przystawki.
Dystrybucja systemu Linux może już obejmować przystawkę. Spróbuj uruchomić polecenie snap
z terminalu, aby sprawdzić, czy polecenie działa. Aby uzyskać listę obsługiwanych dystrybucji systemu Linux i instrukcje dotyczące sposobu instalowania przystawki, zobacz Instalowanie snapd
programu .
Wersje platformy .NET
Firma Microsoft publikuje platformę .NET w dwóch różnych zasadach pomocy technicznej, long term support (LTS) i 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 trzy 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.
Wersje platformy .NET, które są obecnie obsługiwane przez firmę Microsoft, to:
- 9.0 (STS) — wsparcie kończy się w maju 2026 r.
- 8.0 (LTS) — wsparcie kończy się 10 listopada 2026 r.
Inne jednostki, które kompilują i zwalniają platformę .NET, mogą wprowadzać różne zasady pomocy technicznej. Pamiętaj, aby zapoznać się z nimi, aby zrozumieć, jak platforma .NET jest obsługiwana.
1. Instalowanie zestawu SDK
Ważne
Platforma .NET 9 została wydana 12 listopada 2024 r. Może upłynąć trochę czasu, aby pakiety pojawiały się w kanałach informacyjnych menedżera pakietów lub w celu uwzględnienia ich w określonej dystrybucji systemu Linux.
Pakiety przyciągania dla zestawu .NET SDK są publikowane pod tym samym identyfikatorem: dotnet-sdk
. Określoną wersję zestawu SDK można zainstalować, określając kanał. Zestaw SDK zawiera zarówno środowisko uruchomieniowe ASP.NET Core, jak i .NET, w wersji do zestawu SDK.
Napiwek
Strona pakietu zestawu SDK platformy .NET programu Snapcraft zawiera instrukcje dotyczące dystrybucji dotyczące sposobu instalowania programów Snapcraft i .NET.
Otwórz terminal.
Użyj
snap install
polecenia , aby zainstalować pakiet przystawki zestawu .NET SDK. Na przykład następujące polecenie instalujelatest/stable
kanał, który jest domyślny.sudo snap install dotnet-sdk --classic
- Parametr
--classic
jest wymagany. - Użyj parametru ,
--channel
aby określić wersję do zainstalowania. Jeśli ten parametr zostanie pominięty,latest/stable
zostanie użyty. Na przykład--channel 8.0/stable
instaluje zestaw .NET SDK 8.0.
- Parametr
Alias przyciągania dotnet
jest tworzony automatycznie i mapowany na polecenie pakietu przyciągania dotnet
.
W poniższej tabeli wymieniono kanały pakietów, które można zainstalować:
Wersja platformy .NET | Przyciąganie kanału pakietu |
---|---|
9 (STS) | *Jeszcze niedostępne |
8 (LTS) | 8.0/stable lts/stable |
7 (STS) | 7.0/stable (brak pomocy technicznej) |
6 (LTS) | 6.0/stable (brak pomocy technicznej) |
5 | 5.0/stable (brak pomocy technicznej) |
3.1 | 3.1/stable (brak pomocy technicznej) |
2.1 | 2.1/stable (brak pomocy technicznej) |
2. Eksportowanie lokalizacji instalacji
Zmienna DOTNET_ROOT
środowiskowa jest często używana przez narzędzia do określania, gdzie jest zainstalowana platforma .NET. Po zainstalowaniu platformy .NET za pomocą przystawki ta zmienna środowiskowa nie jest skonfigurowana. Należy skonfigurować zmienną środowiskową DOTNET_ROOT w profilu. Ścieżka do przystawki używa następującego formatu: /snap/{package}/current
.
export DOTNET_ROOT=/snap/dotnet-sdk/current
Trwałe eksportowanie zmiennej środowiskowej
export
Poprzednie polecenie ustawia tylko zmienną środowiskową dla sesji terminalu, w której została uruchomiona.
Możesz edytować profil powłoki, 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
- Korn Shell: ~/.kshrc lub .profile
- Powłoka Z: _~/.zshrc* lub .zprofile
Zmodyfikuj odpowiedni plik źródłowy powłoki i dodaj export DOTNET_ROOT=/snap/dotnet-sdk/current
element .
3. Korzystanie z interfejsu wiersza polecenia platformy .NET
Otwórz terminal i wpisz dotnet
.
dotnet
Zostaną wyświetlone następujące dane wyjściowe:
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
Aby dowiedzieć się, jak używać interfejsu wiersza polecenia platformy .NET, zobacz Omówienie interfejsu wiersza polecenia platformy .NET.
Rozwiązywanie problemów
- Polecenie terminalu dotnet nie działa
- Nie można zainstalować przystawki w programie WSL2
- Nie można rozpoznać polecenia dotnet lub zestawu SDK
- Błędy certyfikatu TLS/SSL
Polecenie terminalu dotnet nie działa
Pakiety przyciągania mogą mapować alias na polecenie dostarczone przez pakiet. Domyślnie pakiety przyciągania zestawu .NET SDK tworzą alias dla dotnet
polecenia . Jeśli alias nie został utworzony lub został wcześniej usunięty, następujące polecenie pokazuje, jak mapować alias:
sudo snap alias dotnet-sdk.dotnet dotnet
Nie można zainstalować przystawki w programie WSL2
systemd
Aby można było zainstalować przystawkę, należy włączyć w wystąpieniu programu WSL2.
Otwórz
/etc/wsl.conf
w wybranym edytorze tekstów.Wklej następującą konfigurację:
[boot] systemd=true
Zapisz plik i uruchom ponownie wystąpienie WSL2 za pomocą programu PowerShell. Użyj polecenia
wsl.exe --shutdown
.
Nie można rozpoznać polecenia dotnet lub zestawu SDK
Jest to typowe dla innych aplikacji, takich jak środowisko IDE kodu lub rozszerzenie w programie Visual Studio Code, aby spróbować rozpoznać lokalizację zestawu .NET SDK. Zazwyczaj odnajdywanie odbywa się przez sprawdzenie zmiennej środowiskowej DOTNET_ROOT
lub ustalenie, gdzie dotnet
znajduje się plik wykonywalny. Zestaw SDK platformy .NET zainstalowany przez przystawkę może mylić te aplikacje. Jeśli te aplikacje nie mogą rozpoznać zestawu .NET SDK, zostanie wyświetlony błąd podobny do jednego z następujących komunikatów:
- Nie można odnaleźć określonego zestawu SDK "Microsoft.NET.Sdk"
- Nie można odnaleźć określonego zestawu SDK "Microsoft.NET.Sdk.Web"
- Nie można odnaleźć określonego zestawu SDK "Microsoft.NET.Sdk.Razor"
Spróbuj wykonać następujące czynności, aby rozwiązać ten problem:
Upewnij się, że zmienna środowiskowa jest
DOTNET_ROOT
eksportowana trwale.Spróbuj połączyć symboliczny plik wykonywalny przyciągania
dotnet
z lokalizacją, którą szuka program.Dwie typowe ścieżki
dotnet
, których szuka polecenie, to:/usr/local/bin/dotnet
/usr/share/dotnet
Użyj następującego polecenia, aby utworzyć link symboliczny do pakietu przyciągania:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
Błędy certyfikatu TLS/SSL
Po zainstalowaniu platformy .NET za pomocą przystawki możliwe jest, ż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 różni się w zależności od dystrybucji. Poniżej przedstawiono lokalizacje dystrybucji, w których zaobserwowano 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 |