Udostępnij za pośrednictwem


Instalowanie zestawu SDK .NET za pomocą Snap

W tym artykule opisano sposób instalowania pakietu snap .NET SDK. Pakiety snap .NET SDK są dostarczane i obsługiwane 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 Samouczek wprowadzający.

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, gdy .NET jest zainstalowany za pośrednictwem 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.
  • usługa snap.

Dystrybucja systemu Linux może już zawierać snap. Spróbuj uruchomić polecenie z terminalu, aby sprawdzić, czy polecenie działa. Aby uzyskać listę obsługiwanych dystrybucji Linux oraz instrukcje dotyczące instalacji Snap, zobacz Instalowanie.

.NET wydania

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 skontaktujesz się z nimi, aby dowiedzieć się, jak jest obsługiwana platforma .NET.

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 publikowane pod tym samym identyfikatorem dotnet-sdk, a wersję ustalano za pośrednictwem kanału. Ponadto pakiety Snap .NET 9 i nowsze obsługują zarówno architektury x64, jak 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 zgodnej z zestawem SDK.

Wskazówka

Strona pakietu zestawu SDK Snapcraft .NET SDK zawiera instrukcje dotyczące dystrybucji dotyczące sposobu instalowania programu Snapcraft i .NET.

  1. Otwórz terminal.

  2. Użyj snap install, aby zainstalować pakiet Snap zestawu SDK .NET.

    Parametr jest 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 --classic
      
    • Dla .NET 8 i starszych

      Zainstaluj z pakietu i określ kanał. Jeśli ten parametr zostanie pominięty, zostanie użyty. Na przykład następujące polecenie instaluje .NET SDK 8:

      sudo snap install dotnet-sdk --classic --channel 8.0/stable
      

Alias snap jest tworzony automatycznie i mapowany na polecenie pakietu snap.

W poniższej tabeli wymieniono pakiety snap i kanały, które można zainstalować.

wersja .NET Pakiet Snap lub kanał
10 (LTS) (wersja zapoznawcza)
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk --channel 8.0/stable
7 (poza zakresem wsparcia)
6 (brak wsparcia)
5 (niewspierane)
3.1 (brak pomocy technicznej)
2.1 (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 przystawki używa następującego formatu: .

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

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
  • Powłoka Z: _~/.zshrc* lub .zprofile

Zmodyfikuj odpowiedni plik źródłowy powłoki i dodaj polecenie eksportu dla zainstalowanej wersji .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.

3. Korzystanie z interfejsu wiersza polecenia .NET

Otwórz terminal i wpisz .

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 w systemie 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 SDK .NET 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 na WSL2

Aby można było zainstalować Snap, należy włączyć go na instancji WSL2.

  1. Otwórz w wybranym edytorze tekstów.

  2. Wklej następującą konfigurację:

    [boot]
    systemd=true
    
  3. Zapisz plik i uruchom ponownie wystąpienie WSL2 za pomocą programu PowerShell. Użyj tego polecenia.

Nie można rozpoznać polecenia dotnet lub zestawu SDK

W przypadku innych aplikacji, takich jak środowisko IDE do kodu lub rozszerzenie w Visual Studio Code, często próbuje się ustalić lokalizację zestawu SDK .NET. Zazwyczaj odnajdywanie odbywa się przez sprawdzenie zmiennej środowiskowej lub ustalenie, gdzie znajduje się plik wykonywalny. Instalacja SDK .NET za pomocą Snap może powodować problemy dla tych aplikacji. 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:

  1. Upewnij się, że zmienna środowiskowa jest eksportowana trwale.

  2. Spróbuj utworzyć dowiązanie symboliczne pliku wykonywalnego snap do lokalizacji, w której program go poszukuje.

    Dwie typowe ścieżki , 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/dotnet
    

    W 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 może się zdarzyć, że w niektórych dystrybucjach certyfikaty .NET TLS/SSL mogą nie zostać znalezione 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