Udostępnij przez


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 snapdprogramu .

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 dwa lata. Aby uzyskać więcej informacji, zobacz Zasady pomocy technicznej platformy .NET.

Wersje platformy .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 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 10 została wydana 11 listopada 2025 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.

Począwszy od .NET 9, pakiety snap dla zestawu .NET SDK są publikowane pod identyfikatorami specyficznymi dla wersji (na przykład dotnet-sdk-90 dla .NET 9 i dotnet-sdk-100 dla .NET 10). Przed platformą .NET 9 wszystkie wersje zestawu SDK zostały opublikowane w ramach tego samego identyfikatora dotnet-sdk, i określono wersję poprzez kanał. Ponadto pakiety snap dla .NET 9 i nowszych wersji obsługują architektury x64 i ARM64, podczas gdy starsze wersje obsługują tylko architekturę x64. 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.

  1. Otwórz terminal.

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

    Parametr --classic jest wymagany.

    • W przypadku platformy .NET 9 lub nowszej

      Zainstaluj pakiet specyficzny dla wersji. Na przykład następujące polecenie instaluje zestaw .NET SDK 10:

      sudo snap install dotnet-sdk-100 --classic
      
    • W przypadku platformy .NET 8 i starszych

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

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

Alias przyciągania dotnet jest tworzony automatycznie i mapowany na polecenie pakietu przyciągania dotnet .

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

Wersja platformy .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 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.

W przypadku platformy .NET 9 i nowszych użyj nazwy pakietu specyficznego dla wersji:

export DOTNET_ROOT=/snap/dotnet-sdk-100/current

W przypadku platformy .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 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 polecenie eksportu dla zainstalowanej wersji platformy .NET. W przypadku platformy .NET 9+użyj polecenia export DOTNET_ROOT=/snap/dotnet-sdk-100/current (dostosuj numer wersji zgodnie z potrzebami). W przypadku platformy .NET 8 i starszych użyj polecenia export DOTNET_ROOT=/snap/dotnet-sdk/current.

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

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, użyj następującego polecenia, aby zamapować alias.

W przypadku platformy .NET 9 lub nowszej:

sudo snap alias dotnet-sdk-100.dotnet dotnet

W przypadku platformy .NET 8 i starszych:

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.

  1. Otwórz /etc/wsl.conf 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 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:

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

  2. 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 snap. W przypadku platformy .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 platformy .NET 8 i starszych:

    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