Udostępnij za pośrednictwem


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

  1. Otwórz terminal.

  2. Użyj snap install polecenia , aby zainstalować pakiet przystawki zestawu .NET SDK. Na przykład następujące polecenie instaluje latest/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.

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/currentelement .

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

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