Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak zainstalować pakiet snap zestawu SDK .NET. Pakiety snap SDK .NET są dostarczane i utrzymywane przez firmę Canonical. Snaps są świetną alternatywą dla menedżera pakietów wbudowanego w dystrybucję Linuksa.
Snap to zestaw aplikacji i jej zależności, który działa w wielu różnych dystrybucjach systemu Linux. Snaps można odnajdywać i instalować ze sklepu Snap Store. Aby uzyskać więcej informacji na temat Snap, zobacz Rozpocznij.
Uwaga
Instalacje Snap .NET mogą mieć problemy z uruchamianiem narzędzi .NET. Jeśli chcesz użyć narzędzi .NET, zalecamy zainstalowanie .NET przy użyciu dotnet-install skryptu lub menedżera pakietów dla odpowiedniej dystrybucji systemu Linux.
Jest to znany problem polegający na tym, że polecenie dotnet watch nie działa po zainstalowaniu .NET za pomocą Snap.
Jeśli zamierzasz użyć narzędzi .NET lub polecenia dotnet watch, zalecamy zainstalowanie .NET przy użyciu skryptu dotnet-install.
Wymagania wstępne
- Dystrybucja systemu Linux, która obsługuje snap.
-
snapddemon przystawki.
Dystrybucja systemu Linux może już zawierać snap. 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 instalacji programu snap, zobacz Instalowanie snapd.
wydania .NET
Firma Microsoft publikuje .NET w ramach dwóch różnych zasad pomocy technicznej, długoterminowej pomocy technicznej (LTS) i standardowej pomocy technicznej (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 dwa lata. Aby uzyskać więcej informacji, zobacz .NET Zasady pomocy technicznej.
Wersje .NET, które są obecnie obsługiwane przez firmę Microsoft, to:
- 10.0 (LTS) — wsparcie kończy się 14 listopada 2028 r.
- 9.0 (STS) — wsparcie kończy się 10 listopada 2026 r.
- 8.0 (LTS) — wsparcie kończy się 10 listopada 2026 r.
Inne jednostki, które kompilują i udostępniają .NET, mogą wprowadzać różne zasady pomocy technicznej. Upewnij się, że skontaktowałeś się z nimi, aby dowiedzieć się, jak .NET jest obsługiwany.
1. Instalowanie zestawu SDK
Ważne
.NET 10 został wydany 11 listopada 2025 r. Może upłynąć trochę czasu, aż pakiety pojawią się w kanałach menedżera pakietów lub aż Twoja konkretna dystrybucja Linuxa je uwzględni.
Począwszy od .NET 9, pakiety snap dla zestawu SDK .NET są publikowane pod identyfikatorami specyficznymi dla wersji (na przykład dotnet-sdk-90 dla .NET 9 i dotnet-sdk-100 dla .NET 10). Przed .NET 9 wszystkie wersje zestawu SDK były wydawane pod tym samym identyfikatorem dotnet-sdk, a wersje określano za pomocą kanału. Ponadto pakiety snap .NET 9 i nowsze obsługują architektury x64 i Arm64, podczas gdy wcześniejsze wersje obsługują tylko architekturę x64. Zestaw SDK obejmuje zarówno środowisko uruchomieniowe ASP.NET Core, jak i .NET, w wersji do zestawu SDK.
Wskazówka
Strona pakietu zestawu SDK Snapcraft .NET SDK zawiera instrukcje dotyczące dystrybucji dotyczące sposobu instalowania programu Snapcraft i .NET.
Otwórz terminal.
Użyj
snap install, aby zainstalować pakiet snap SDK .NET.Parametr
--classicjest wymagany.Dla .NET 9 i nowszych
Zainstaluj pakiet specyficzny dla wersji. Na przykład następujące polecenie instaluje .NET SDK 10:
sudo snap install dotnet-sdk-100 --classicDla wersji .NET 8 i wcześniejszych
Zainstaluj z
dotnet-sdkpakietu i określ kanał. Jeśli ten parametr zostanie pominięty,latest/stablezostanie użyty. Na przykład następujące polecenie instaluje .NET SDK 8:sudo snap install dotnet-sdk --classic --channel 8.0/stable
Alias snapa dotnet jest tworzony automatycznie i mapowany na polecenie pakietu snap dotnet.
W poniższej tabeli wymieniono pakiety snap i kanały, które można zainstalować.
| wersja .NET | Pakiet Snap lub kanał |
|---|---|
| 10 (LTS) |
dotnet-sdk-100 (wersja zapoznawcza) |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk --channel 8.0/stable |
| 7 |
dotnet-sdk --channel 7.0/stable (brak pomocy technicznej) |
| 6 |
dotnet-sdk --channel 6.0/stable (brak pomocy technicznej) |
| 5 |
dotnet-sdk --channel 5.0/stable (brak pomocy technicznej) |
| 3.1 |
dotnet-sdk --channel 3.1/stable (brak pomocy technicznej) |
| 2.1 |
dotnet-sdk --channel 2.1/stable (brak pomocy technicznej) |
2. Eksportowanie lokalizacji instalacji
Zmienna środowiskowa DOTNET_ROOT jest często używana przez narzędzia do określania miejsca instalacji .NET. Po zainstalowaniu .NET za pomocą Snap ta zmienna środowiskowa nie jest skonfigurowana. Należy skonfigurować zmienną środowiskową DOTNET_ROOT w profilu. Ścieżka do pakietu snap ma następujący format: /snap/{package}/current.
W przypadku .NET 9 i nowszych użyj nazwy pakietu specyficznego dla wersji:
export DOTNET_ROOT=/snap/dotnet-sdk-100/current
W przypadku .NET 8 i starszych użyj nazwy pakietu udostępnionego:
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 polecenia były dodawane na stałe. Istnieje wiele różnych powłok dostępnych dla Linuxa i każda z nich ma inny profil. Na przykład:
- Powłoka Bash: ~/.bash_profile, ~/.bashrc
- Korn Shell: ~/.kshrc lub .profile
- Z Shell: _~/.zshrc* lub .zprofile
Zmodyfikuj odpowiedni plik źródłowy powłoki i dodaj polecenie eksportu dla zainstalowanej wersji platformy .NET. W przypadku .NET 9+użyj export DOTNET_ROOT=/snap/dotnet-sdk-100/current (dostosuj numer wersji zgodnie z potrzebami). W przypadku .NET 8 i starszych użyj export DOTNET_ROOT=/snap/dotnet-sdk/current.
1. Użyj interfejsu wiersza poleceń .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 .NET, zobacz .NET omówienie interfejsu wiersza polecenia.
Rozwiązywanie problemów
- Polecenie terminalu dotnet nie działa
- Nie można zainstalować Snap na WSL2
- Nie można rozpoznać polecenia dotnet lub zestawu SDK
- Błędy certyfikatu TLS/SSL
Polecenie terminalu dotnet nie działa
Pakiety Snap mogą przypisywać alias do polecenia dostarczonego przez pakiet. Domyślnie pakiety snap zestawu .NET SDK tworzą alias dla polecenia dotnet. Jeśli alias nie został utworzony lub został wcześniej usunięty, użyj następującego polecenia, aby zamapować alias.
W przypadku .NET 9 i nowszych:
sudo snap alias dotnet-sdk-100.dotnet dotnet
W przypadku .NET 8 i starszych:
sudo snap alias dotnet-sdk.dotnet dotnet
Nie można zainstalować Snap w systemie WSL2
systemd musi być włączone w instancji WSL2, zanim Snap będzie można zainstalować.
Otwórz
/etc/wsl.confw wybranym edytorze tekstów.Wklej następującą konfigurację:
[boot] systemd=trueZapisz 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
W przypadku innych aplikacji, takich jak IDE do kodowania czy rozszerzenie w Visual Studio Code, często próbują one określić lokalizację zestawu SDK .NET. Zazwyczaj odnajdywanie odbywa się przez sprawdzenie zmiennej środowiskowej DOTNET_ROOT lub ustalenie, gdzie dotnet znajduje się plik wykonywalny. Zestaw SDK .NET zainstalowany przez przystawkę może mylić te aplikacje. Jeśli te aplikacje nie mogą rozpoznać zestawu SDK .NET, zostanie wyświetlony błąd podobny do jednego z następujących komunikatów:
- Zestaw SDK 'Microsoft.NET.Sdk' nie został odnaleziony
- 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 trwale eksportujesz zmienną środowiskową
DOTNET_ROOT.Spróbuj utworzyć dowiązanie symboliczne pliku wykonywalnego snap
dotnetdo lokalizacji, której 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 snap. W przypadku .NET 9 i nowszych użyj nazwy pakietu specyficznego dla wersji:
ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnetW przypadku .NET 8 i starszych:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
Błędy certyfikatu TLS/SSL
Po zainstalowaniu .NET za pomocą Snap istnieje możliwość, że na niektórych dystrybucjach certyfikaty TLS/SSL .NET mogą nie zostać odnalezione i możesz otrzymać 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 |
Powiązana zawartość
- omówienie interfejsu CLI .NET
- Jak włączyć uzupełnianie tab dla CLI .NET.
- Tutorial: tworzenie aplikacji konsolowej z .NET