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.
Ważne
Jeśli zainstalujesz platformę .NET za pomocą Snap, używaj Snap do zarządzania wszystkimi instalacjami .NET. Unikaj mieszania Snap z innymi metodami instalacji, takimi jak menedżer pakietów lub instalacja za pomocą skryptu, ponieważ mieszanie tych metod może powodować konflikty.
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
Aby zainstalować zestaw .NET SDK, użyj identyfikatorów pakietów snap specyficznych dla wersji, ponieważ takie podejście umożliwia instalowanie wielu wersji zestawu SDK i zarządzanie nimi równolegle. Na przykład użyj dotnet-sdk-80 dla .NET 8 i dotnet-sdk-100 dla .NET 10. Zestaw SDK obejmuje zarówno środowisko uruchomieniowe ASP.NET Core, jak i .NET, w wersji do zestawu SDK. W tym artykule używany jest pakiet Snap zestawu SDK platformy .NET 10; jeśli używasz innego pakietu, zastąp go.
Wskazówka
Strona pakietu Snapcraft dla zestawu .NET SDK (.NET 8, .NET 9, .NET 10) zawiera instrukcje specyficzne dla danej dystrybucji dotyczące instalacji Snapcraft i platformy .NET.
Otwórz terminal.
Użyj
snap install, aby zainstalować pakiet snap SDK .NET.Następujące polecenie instaluje zestaw .NET SDK 10:
sudo snap install dotnet-sdk-100
W poniższej tabeli wymieniono pakiety przystawki zestawu SDK .NET, które można zainstalować:
| wersja .NET | Pakiet Snap |
|---|---|
| 10 (LTS) | dotnet-sdk-100 |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk-80 |
2. Zmapuj polecenie dotnet
Ponieważ Snap nie tworzy polecenia dotnet bez numeru wersji, utwórz dowiązanie symboliczne, aby polecenie dotnet było dostępne w całym systemie. Utwórz to łącze tylko wtedy, gdy chcesz powiązać polecenie dotnet z tą konkretną instalacją Snap. Jeśli masz już zainstalowany pakiet .NET inną metodą i utworzysz to łącze, spowoduje to zastąpienie tego mapowania.
Jeśli /usr/local/bin/dotnet już istnieje, usuń go przed utworzeniem linku.
sudo ln -s /snap/dotnet-sdk-100/current/usr/bin/dotnet /usr/local/bin/dotnet
3. Eksportowanie lokalizacji instalacji
Skonfiguruj zmienną środowiskową DOTNET_ROOT w profilu powłoki, ponieważ narzędzia używają jej do określenia, gdzie zainstalowano platformę .NET. Instalacje Snap nie ustawiają tej zmiennej automatycznie. Ścieżka ma następujący format: /snap/{package}/current/usr/lib/dotnet.
export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet
Zastąp 100 wersją zestawu SDK, którą zainstalowano, na przykład 80 dla platformy .NET 8 lub 90 dla platformy .NET 9.
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
Edytuj odpowiedni plik konfiguracyjny używanej powłoki, dodaj polecenie `export` dla zainstalowanej wersji platformy .NET i zapisz zmiany.
Przykład: export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.
4. Użyj interfejsu wiersza polecenia .NET CLI
Otwórz terminal i uruchom dotnet polecenie .
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
- Nie można zainstalować Snap na WSL2
- Nie można rozpoznać polecenia dotnet lub zestawu SDK
- Błędy certyfikatu TLS/SSL
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:
- Ukończ 2. Zmapuj polecenie dotnet.
- Ustaw zmienną środowiskową
DOTNET_ROOTna stałe, postępując zgodnie z sekcją Eksportowanie zmiennej środowiskowej na stałe.
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