Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie das .NET SDK-Snap-Paket installieren. .NET SDK-Snap-Pakete werden von Canonical bereitgestellt und verwaltet. Snaps stellen eine gute Alternative zum in Ihre Linux-Distribution integrierten Paket-Manager dar.
Ein Snap ist ein Bündel aus einer App und ihren Abhängigkeiten, das in vielen verschiedenen Linux-Distributionen funktioniert. Snaps sind über den Snap Store abrufbar und installierbar. Weitere Informationen zu Snap finden Sie unter Schnellstart-Tour.
Achtung
Snap-Installationen von .NET können Probleme mit .NET-Tools haben. Wenn Sie .NET Tools verwenden möchten, empfehlen wir, .NET mithilfe des Skripts dotnet-install script oder den Paket-Manager für die jeweilige Linux-Verteilung zu installieren.
Es ist ein bekanntes Problem, dass der Befehl dotnet watch nicht funktioniert, wenn .NET über Snap installiert wird.
Wenn Sie .NET Tools oder den Befehl dotnet watch verwenden möchten, empfiehlt es sich, .NET mithilfe des Skripts dotnet-install script zu installieren.
Voraussetzungen
- Linux-Distribution, die Snap unterstützt.
-
snapdder Snap-Daemon.
Ihre Linux-Distribution enthält möglicherweise bereits Snap. Versuchen Sie, snap von einem Terminal aus auszuführen, um festzustellen, ob der Befehl funktioniert. Eine Liste der unterstützten Linux-Distributionen und Anweisungen zum Installieren von Snap finden Sie unter Installierensnapd.
.NET-Releases
Microsoft veröffentlicht .NET unter zwei verschiedenen Supportrichtlinien, Long Term Support (LTS) und Standard Term Support (STS). Die Qualität aller Releases ist gleich. Der einzige Unterschied ist die Dauer der Unterstützung. LTS-Versionen erhalten drei Jahre lang kostenlosen Support und Patches. STS-Versionen erhalten kostenlosen Support und Patches für zwei Jahre. Weitere Informationen finden Sie unter .NET Supportrichtlinie.
Die Versionen von .NET, die derzeit von Microsoft unterstützt werden, sind:
- 10.0 (LTS) – Der Support endet am 14. November 2028.
- 9.0 (STS) – Der Support endet am 10. November 2026.
- 8.0 (LTS) – Der Support endet am 10. November 2026.
Andere Entitäten, die .NET erstellen und freigeben, können unterschiedliche Supportrichtlinien einführen. Besprechen Sie unbedingt mit ihnen, wie .NET unterstützt wird.
1. Installieren des SDKs
Wichtig
.NET 10 wurde am 11. November 2025 veröffentlicht. Es kann einige Zeit dauern, bis die Pakete in den Paketmanager-Feeds erscheinen oder in Ihre spezifische Linux-Distribution aufgenommen werden.
Ab .NET 9 werden Snap-Pakete für das .NET SDK unter versionsspezifischen Bezeichnern veröffentlicht (z. B. dotnet-sdk-90 für .NET 9 und dotnet-sdk-100 für .NET 10). Vor .NET 9 wurden alle SDK-Versionen unter demselben Bezeichner dotnet-sdk veröffentlicht, und Sie haben die Version über einen Kanal angegeben. Darüber hinaus unterstützen .NET 9- und höher-Snap-Pakete sowohl x64- als auch Arm64-Architekturen, während frühere Versionen nur x64 unterstützen. Das SDK enthält sowohl die ASP.NET Core als auch .NET Laufzeit, versioniert für das SDK.
Tipp
Die Snapcraft .NET SDK-Paketseite enthält verteilungsspezifische Anweisungen zum Installieren von Snapcraft und .NET.
Öffnen Sie ein Terminal.
Verwenden Sie
snap install, um das .NET SDK-Snap-Paket zu installieren.Der
--classicParameter ist erforderlich.Ab .NET 9 und höher
Installieren Sie das versionsspezifische Paket. Der folgende Befehl installiert z. B. .NET SDK 10:
sudo snap install dotnet-sdk-100 --classicZu .NET 8 und früheren Versionen
Installieren Sie aus dem
dotnet-sdkPaket, und geben Sie einen Kanal an. Bei Weglassen dieses Parameters wirdlatest/stableverwendet. Der folgende Befehl installiert z. B. .NET SDK 8:sudo snap install dotnet-sdk --classic --channel 8.0/stable
Der Snap-Alias „dotnet“ wird automatisch erstellt und dem dotnet-Befehl des Snap-Pakets zugeordnet.
In der folgenden Tabelle sind die Snap-Pakete und Kanäle aufgeführt, die Sie installieren können:
| .NET Version | Snap-Paket oder Kanal |
|---|---|
| 10 (LTS) |
dotnet-sdk-100 (Vorschau) |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk --channel 8.0/stable |
| 7 |
dotnet-sdk --channel 7.0/stable (nicht unterstützt) |
| 6 |
dotnet-sdk --channel 6.0/stable (nicht unterstützt) |
| 5 |
dotnet-sdk --channel 5.0/stable (nicht unterstützt) |
| 3.1 |
dotnet-sdk --channel 3.1/stable (nicht unterstützt) |
| 2.1 |
dotnet-sdk --channel 2.1/stable (nicht unterstützt) |
2. Exportieren des Installationspfads
Die Umgebungsvariable DOTNET_ROOT wird häufig von Tools verwendet, um zu bestimmen, wo .NET installiert ist. Wenn .NET über Snap installiert wird, ist diese Umgebungsvariable nicht konfiguriert. Sie sollten die Umgebungsvariable DOTNET_ROOT in Ihrem Profil konfigurieren. Der Pfad zu Snap verwendet das folgende Format: /snap/{package}/current.
Verwenden Sie für .NET 9 und höher den versionsspezifischen Paketnamen:
export DOTNET_ROOT=/snap/dotnet-sdk-100/current
Verwenden Sie für .NET 8 und früheren Versionen den Namen des freigegebenen Pakets:
export DOTNET_ROOT=/snap/dotnet-sdk/current
Dauerhaftes Exportieren der Umgebungsvariable
Der oben aufgeführte Befehl export legt nur die Umgebungsvariable für die Terminalsitzung fest, in der er ausgeführt wurde.
Sie können Ihr Shell-Profil bearbeiten, um diese Befehle dauerhaft hinzuzufügen. Für Linux sind viele verschiedene Shells verfügbar, die jeweils über ein unterschiedliche Profile verfügen. Zum Beispiel:
- Bash-Shell: ~/.bash_profile, ~/.bashrc
- Korn-Shell: ~/.kshrc oder .profile
- Z Shell: _~/.zshrc* oder .zprofile
Bearbeiten Sie die entsprechende Quelldatei für Die Shell, und fügen Sie den Exportbefehl für die installierte .NET Version hinzu. Verwenden Sie für .NET 9+ export DOTNET_ROOT=/snap/dotnet-sdk-100/current (passen Sie die Versionsnummer bei Bedarf an). Verwenden Sie für .NET 8 und früheren Versionen export DOTNET_ROOT=/snap/dotnet-sdk/current.
3. Verwenden sie die .NET CLI
Öffnen Sie ein Terminal und geben Sie dotnet ein.
dotnet
Die folgende Ausgabe wird angezeigt:
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.
Informationen zur Verwendung der .NET CLI finden Sie unter .NET CLI-Übersicht.
Problembehandlung
- Der Dotnet-Terminalbefehl funktioniert nicht
- Snap auf WSL2 kann nicht installiert werden
- Der Dotnet-Befehl oder das SDK kann nicht aufgelöst werden
- TLS/SSL-Zertifikatfehler
Der Dotnet-Terminalbefehl funktioniert nicht
Snap-Pakete können einem Befehl einen Alias zuordnen, der vom Paket bereitgestellt wird. Standardmäßig erstellen die .NET SDK-Snappakete einen Alias für den Befehl dotnet. Wenn der Alias nicht erstellt oder zuvor entfernt wurde, verwenden Sie den folgenden Befehl, um den Alias zuzuordnen.
Für .NET 9 und höher:
sudo snap alias dotnet-sdk-100.dotnet dotnet
Für .NET 8 und früher:
sudo snap alias dotnet-sdk.dotnet dotnet
Auf WSL2 kann Snap nicht installiert werden
systemd muss auf der WSL2-Instanz aktiviert sein, bevor Snap installiert werden kann.
Öffnen Sie
/etc/wsl.confin einem Text-Editor Ihrer Wahl.Fügen Sie die folgende Konfiguration ein:
[boot] systemd=trueSpeichern Sie die Datei, und starten Sie die WSL2-Instanz über PowerShell neu. Verwenden Sie den Befehl
wsl.exe --shutdown.
Der Dotnet-Befehl oder das SDK kann nicht aufgelöst werden
Es ist üblich, dass andere Apps, z. B. eine Code-IDE oder eine Erweiterung in Visual Studio Code, versuchen, den Speicherort des .NET SDK aufzulösen. Die Ermittlung erfolgt in der Regel durch Überprüfen der Umgebungsvariablen „DOTNET_ROOT“ oder durch das Herausfinden des Speicherorts der ausführbaren Datei „dotnet“. Ein snap-installiertes .NET SDK kann diese Apps verwirren. Wenn diese Apps das .NET SDK nicht beheben können, wird ein Fehler angezeigt, der einer der folgenden Meldungen ähnelt:
- Das angegebene SDK 'Microsoft.NET.Sdk' konnte nicht gefunden werden.
- Das angegebene SDK 'Microsoft.NET.Sdk.Web' wurde nicht gefunden.
- Das SDK 'Microsoft.NET. Sdk.Razor' angegeben konnte nicht gefunden werden
Führen Sie die folgenden Schritte aus, um das Problem zu beheben:
Stellen Sie sicher, dass Sie die
DOTNET_ROOT-Umgebungsvariable dauerhaft exportieren.Versuchen Sie, die ausführbare
dotnet-Snap-Datei symbolisch mit dem Speicherort, den das Programm sucht, zu verknüpfen.Zwei gängige Pfade, nach denen der Befehl
dotnetsucht:/usr/local/bin/dotnet/usr/share/dotnet
Verwenden Sie den folgenden Befehl, um eine symbolische Verknüpfung mit dem Snap-Paket zu erstellen. Verwenden Sie für .NET 9 und höher den versionsspezifischen Paketnamen:
ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnetFür .NET 8 und früher:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
TLS/SSL-Zertifikatfehler
Wenn .NET über Snap installiert wird, ist es möglich, dass bei einigen Verteilungen die .NET TLS/SSL-Zertifikate möglicherweise nicht gefunden werden und während restore eine Fehlermeldung angezeigt wird:
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]
Zum Lösen dieses Problems müssen Sie einige Umgebungsvariablen festlegen:
export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null
Der Speicherort des Zertifikats variiert je nach Distribution. Hier sind die Standorte der Distributionen, an denen das Problem beobachtet wurde.
| Verteilung | Standort |
|---|---|
| Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
| OpenSUSE | /etc/ssl/ca-bundle.pem |
| Solus | /etc/ssl/certs/ca-certificates.crt |