Dela via


Installera .NET SDK med Snap

I den här artikeln beskrivs hur du installerar .NET SDK-snappaketet. .NET SDK snap-paket tillhandahålls av och underhålls av Canonical. Snaps är ett bra alternativ till pakethanteraren som är inbyggd i din Linux-distribution.

En snap är ett paket med en app och dess beroenden som fungerar i många olika Linux-distributioner. Snappar kan identifieras och installeras från Snap Store. Mer information om Snap finns i Snabbstartsturné.

Varning

Snapinstallationer av .NET kan ha problem med att köra .NET-verktyg. Om du vill använda .NET-verktyg rekommenderar vi att du installerar .NET med hjälp av skriptet dotnet-install eller pakethanteraren för den specifika Linux-distributionen.

Det är ett känt problem att dotnet watch kommandot inte fungerar när .NET installeras via Snap.

Om du ska använda .NET-verktyg eller dotnet watch kommandot rekommenderar vi att du installerar .NET med hjälp av skriptetdotnet-install.

Förutsättningar

  • Linux-distribution som stöder snap.
  • snapd snap-daemonen.

Linux-distributionen kanske redan innehåller snap. Prova att köra snap från en terminal för att se om kommandot fungerar. En lista över Linux-distributioner som stöds och instruktioner för hur du installerar snap finns i Installera snapd.

.NET-versioner

Microsoft publicerar .NET under två olika supportprinciper, Long Term Support (LTS) och Standard Term Support (STS). Kvaliteten på alla utgåvor är densamma. Den enda skillnaden är supportens längd. LTS-versioner får kostnadsfri support och korrigeringar i tre år. STS-versioner får kostnadsfri support och korrigeringar i 18 månader. Mer information finns i .NET-supportprincip.

De versioner av .NET som för närvarande stöds av Microsoft är:

  • 8.0 (LTS)– Supporten upphör den 10 november 2026.
  • 6.0 (LTS)–Supporten upphör den 12 november 2024.

Andra entiteter som skapar och släpper .NET kan introducera olika supportprinciper. Var noga med att kontrollera med dem för att förstå hur .NET stöds.

1. Installera SDK

Snap-paket för .NET SDK publiceras alla under samma identifierare: dotnet-sdk. Du kan installera en specifik version av SDK:et genom att ange kanalen. SDK:et innehåller både ASP.NET Core- och .NET-körningen, som är version till SDK: et.

Dricks

Snapcraft .NET SDK-paketsidan innehåller distributionsspecifika instruktioner för hur du installerar Snapcraft och .NET.

  1. Öppna en terminal.

  2. Använd snap install för att installera .NET SDK snap-paketet. Följande kommando installerar latest/stable till exempel kanalen, som är standard.

    sudo snap install dotnet-sdk --classic
    
    • Parametern --classic krävs.
    • Använd parametern --channel för att ange vilken version som ska installeras. Om den här parametern utelämnas latest/stable används. Installerar till exempel --channel 8.0/stable .NET SDK 8.0.

Snap-aliaset dotnet skapas automatiskt och mappas till snappaketets dotnet kommando.

I följande tabell visas de paketkanaler som du kan installera:

.NET-version Fäst paketkanal
8 (LTS) 8.0/stable
latest/stable
lts/stable
7 7.0/stable (supporten är slut)
6 (LTS) 6.0/stable
5 5.0/stable (supporten är slut)
3.1 3.1/stable (supporten är slut)
2.1 2.1/stable (supporten är slut)

2. Exportera installationsplatsen

Miljövariabeln DOTNET_ROOT används ofta av verktyg för att avgöra var .NET är installerat. När .NET installeras via Snap konfigureras inte den här miljövariabeln. Du bör konfigurera DOTNET_ROOT miljövariabeln i din profil. Sökvägen till snapen använder följande format: /snap/{package}/current.

export DOTNET_ROOT=/snap/dotnet-sdk/current

Exportera miljövariabeln permanent

export Föregående kommando anger endast miljövariabeln för terminalsessionen där den kördes.

Du kan redigera shell-profilen för att permanent lägga till kommandona. Det finns många olika gränssnitt för Linux och var och en har en annan profil. Till exempel:

  • Bash Shell: ~/.bash_profile, ~/.bashrc
  • Korn Shell: ~/.kshrc eller .profile
  • Z Shell: _~/.zshrc* eller .zprofile

Redigera lämplig källfil för gränssnittet och lägg till export DOTNET_ROOT=/snap/dotnet-sdk/current.

3. Använd .NET CLI

Öppna en terminal och skriv dotnet.

dotnet

Följande utdata visas:

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.

Information om hur du använder .NET CLI finns i .NET CLI-översikt.

Felsökning

Dotnet-terminalkommandot fungerar inte

Snap-paket kan mappa ett alias till ett kommando som tillhandahålls av paketet. Som standard skapar .NET SDK snap-paket ett alias för dotnet kommandot. Om aliaset inte skapades eller togs bort tidigare visar följande kommando hur du mappar aliaset:

sudo snap alias dotnet-sdk.dotnet dotnet

Det går inte att installera Snap på WSL2

systemd måste aktiveras på WSL2-instansen innan Snap kan installeras.

  1. Öppna /etc/wsl.conf i valfri textredigerare.

  2. Klistra in följande konfiguration:

    [boot]
    systemd=true
    
  3. Spara filen och starta om WSL2-instansen via PowerShell. Använd kommandot wsl.exe --shutdown.

Det går inte att matcha dotnet-kommandot eller SDK:t

Det är vanligt att andra appar, till exempel en kod-IDE eller ett tillägg i Visual Studio Code, försöker lösa platsen för .NET SDK. Identifiering görs vanligtvis genom att kontrollera DOTNET_ROOT miljövariabeln eller ta reda på var den dotnet körbara filen finns. En snapinstallerad .NET SDK kan förvirra dessa appar. När dessa appar inte kan lösa .NET SDK visas ett fel som liknar något av följande meddelanden:

  • Det gick inte att hitta det angivna SDK:t Microsoft.NET.Sdk
  • Det gick inte att hitta det angivna SDK:t Microsoft.NET.Sdk.Web
  • Det gick inte att hitta det angivna SDK:t Microsoft.NET.Sdk.Razor

Prova följande steg för att åtgärda problemet:

  1. Se till att du exporterar DOTNET_ROOT miljövariabeln permanent.

  2. Försök att symboliskt länka snapen dotnet som kan köras till den plats som programmet letar efter.

    Två vanliga sökvägar som dotnet kommandot letar efter är:

    • /usr/local/bin/dotnet
    • /usr/share/dotnet

    Använd följande kommando för att skapa en symbolisk länk till snap-paketet:

    ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
    

TLS/SSL-certifikatfel

När .NET installeras via Snap är det möjligt att .NET TLS/SSL-certifikaten på vissa distributioner kanske inte hittas och du kan få ett fel under 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]

Lös problemet genom att ange några miljövariabler:

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

Certifikatplatsen varierar beroende på distribution. Här är platserna för de distributioner där problemet har observerats:

Distribution Plats
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt