Partage via


Installer .NET SDK avec Snap

Cet article explique comment installer le package snap du kit de développement logiciel (SDK) .NET. Les snap packages du SDK .NET sont fournis et maintenus par Canonical. Les snaps constituent une excellente alternative au gestionnaire de package intégré à votre distribution Linux.

Un snap est un pack d’une application et de ses dépendances qui fonctionne dans de nombreuses distributions Linux différentes. Les Snaps sont détectables et installables à partir du Snap Store. Pour plus d'informations sur Snap, voir Visite guidée de démarrage rapide.

Attention

Les installations Snap de .NET peuvent rencontrer des problèmes lors de l'exécution des outils .NET. Si vous souhaitez utiliser des outils .NET, nous vous recommandons d’installer .NET à l’aide du script dotnet-install ou du gestionnaire de package pour la distribution Linux particulière.

Il s'agit d'un problème connu selon lequel la commande dotnet watch ne fonctionne pas lorsque .NET est installé via Snap.

Si vous utilisez des outils .NET ou la commande dotnet watch, nous vous recommandons d'installer .NET à l'aide du script dotnet-install.

Prérequis

  • Distribution Linux qui prend en charge snap.
  • le démon Snap.

Votre distribution Linux inclut peut-être déjà un snap. Essayez d’exécuter à partir d’un terminal pour voir si la commande fonctionne. Pour obtenir la liste des distributions Linux prises en charge et des instructions sur l’installation d’un snap, consultez Installation de .

versions de .NET

Microsoft publie .NET sous deux stratégies de support différentes, le support à long terme (LTS) et le support standard (STS). La qualité de toutes les versions est la même. La seule différence est la longueur du support. Les versions LTS bénéficient d'une assistance et de correctifs gratuits pendant trois ans. Les versions STS bénéficient d’un support gratuit et de correctifs pendant deux ans. Pour plus d’informations, consultez .NET Stratégie de support.

Les versions de .NET actuellement prises en charge par Microsoft sont les suivantes :

  • 10.0 (LTS) : le support se termine le 14 novembre 2028.
  • 9.0 (STS) : le support se termine le 10 novembre 2026.
  • 8.0 (LTS) : le support se terminera le 10 novembre 2026.

D’autres entités qui créent et publient des .NET peuvent introduire différentes stratégies de support. Veillez à les consulter pour comprendre comment .NET est pris en charge.

1. Installez le SDK

Important

.NET 10 a été publiée le 11 novembre 2025. Il peut prendre du temps pour que les packages apparaissent dans les flux du gestionnaire de packages ou que votre distribution Linux spécifique l’inclue.

À compter de .NET 9, les packages snap pour le SDK .NET sont publiés sous des identificateurs spécifiques à la version (par exemple, dotnet-sdk-90 pour .NET 9 et dotnet-sdk-100 pour .NET 10). Avant .NET 9, toutes les versions du Kit de développement logiciel (SDK) ont été publiées sous le même identificateur dotnet-sdk, et vous avez spécifié la version via un canal. En outre, .NET 9 et versions ultérieures prennent en charge les architectures x64 et Arm64, tandis que les versions antérieures prennent uniquement en charge x64. Le Kit de développement logiciel (SDK) inclut à la fois les ASP.NET Core et .NET runtime, versionnés vers le KIT SDK.

Conseil

La page Snapcraft .NET package sdk inclut des instructions spécifiques à la distribution sur l’installation de Snapcraft et de .NET.

  1. Ouvrez un terminal.

  2. Utilisez snap install pour installer le paquet snap du SDK .NET.

    Le paramètre est obligatoire.

    • For .NET 9 et versions ultérieures

      Installez le package spécifique à la version. Par exemple, la commande suivante installe .NET SDK 10 :

      sudo snap install dotnet-sdk-100 --classic
      
    • For .NET 8 et versions antérieures

      Installez à partir du package et spécifiez un canal. Si ce paramètre est omis, est utilisé. Par exemple, la commande suivante installe .NET SDK 8 :

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

L’alias Snap est automatiquement créé et mappé à la commande du package Snap.

Le tableau suivant répertorie les paquets Snap et les canaux que vous pouvez installer :

version .NET Package ou canal Snap
10 (LTS) (préversion)
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk --channel 8.0/stable
7 (sans prise en charge)
6 (sans prise en charge)
5 (sans prise en charge)
3.1 (sans prise en charge)
2.1 (sans prise en charge)

2. Exporter l’emplacement d’installation

La variable d’environnement DOTNET_ROOT est souvent utilisée par les outils pour déterminer où .NET est installée. Lorsque .NET est installé via Snap, cette variable d'environnement n'est pas configurée. Vous devez configurer la variable d’environnement DOTNET_ROOT dans votre profil. Le chemin d’accès au Snap utilise le format suivant : .

Pour .NET 9 et versions ultérieures, utilisez le nom du package spécifique à la version :

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

Pour .NET 8 et versions antérieures, utilisez le nom du package partagé :

export DOTNET_ROOT=/snap/dotnet-sdk/current

Exporter la variable d’environnement définitivement

La commande précédente définit uniquement la variable d’environnement pour la session de terminal dans laquelle elle a été exécutée.

Vous pouvez modifier votre profil d’interpréteur de commandes pour ajouter définitivement les commandes. De nombreux interpréteurs de commandes sont disponibles pour Linux et chacun présente un profil différent. Exemple :

  • Interpréteur de commandes Bash : ~/.bash_profile, ~/.bashrc
  • Shell Korn : ~/.kshrc ou .profile
  • Z Shell : _~/.zshrc* ou .zprofile

Modifiez le fichier source approprié pour votre interpréteur de commandes et ajoutez la commande d’exportation de votre version installée .NET. Pour .NET 9+, utilisez export DOTNET_ROOT=/snap/dotnet-sdk-100/current (ajustez le numéro de version en fonction des besoins). Pour .NET 8 et versions antérieures, utilisez export DOTNET_ROOT=/snap/dotnet-sdk/current.

3. Utiliser l’interface CLI .NET

Ouvrez un terminal et tapez .

dotnet

Vous obtenez la sortie suivante :

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.

Pour savoir comment utiliser l’interface CLI .NET, consultez .NET vue d’ensemble de l’interface CLI.

Dépannage

  • La commande de terminal dotnet ne fonctionne pas
  • Impossible d’installer Snap sur WSL2
  • Impossible de résoudre la commande dotnet ou le SDK
  • Erreurs de certificat TLS/SSL

La commande de terminal dotnet ne fonctionne pas

Les packages Snap peuvent mapper un alias à une commande fournie par le package. Par défaut, les paquets snap .NET SDK créent un alias pour la commande dotnet. Si l’alias n’a pas été créé ou a été supprimé précédemment, utilisez la commande suivante pour mapper l’alias.

Pour .NET 9 et versions ultérieures :

sudo snap alias dotnet-sdk-100.dotnet dotnet

Pour .NET 8 et versions antérieures :

sudo snap alias dotnet-sdk.dotnet dotnet

Impossible d’installer Snap sur WSL2

Vous devez activer les fonctionnalités requises sur l’instance WSL2 avant de pouvoir installer Snap.

  1. Ouvrez dans l’éditeur de texte de votre choix.

  2. Collez-le dans la configuration suivante :

    [boot]
    systemd=true
    
  3. Enregistrez le fichier et redémarrez l’instance WSL2 via PowerShell. Utilisez la commande .

Impossible de résoudre la commande dotnet ou le SDK

Il est courant pour d'autres applications, telles qu'un IDE de code ou une extension dans Visual Studio Code, de tenter de résoudre l'emplacement du sdk .NET. En règle générale, la détection est effectuée en vérifiant la variable d’environnement ou en recherchant où se trouve l’exécutable . Un .NET SDK installé avec Snap peut perturber le fonctionnement de ces applications. Lorsque ces applications ne peuvent pas résoudre le sdk .NET, une erreur similaire à l'un des messages suivants s'affiche :

  • Kit de développement logiciel (SDK) « Microsoft.NET ». Impossible de trouver le Kit de développement logiciel (SDK) spécifié
  • Kit de développement logiciel (SDK) « Microsoft.NET ». Sdk.Web' spécifié est introuvable
  • Le SDK 'Microsoft.NET.Sdk.Razor' spécifié n'a pas pu être trouvé.

Effectuez les étapes suivantes pour tenter de corriger le problème :

  1. Veillez à exporter la variable d’environnement définitivement.

  2. Essayez de créer un lien symbolique de l’exécutable Snap vers l’emplacement recherché par le programme.

    Deux chemins d’accès courants recherchés par la commande sont :

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

    Utilisez la commande suivante pour créer un lien symbolique vers le paquet snap. Pour .NET 9 et versions ultérieures, utilisez le nom du package spécifique à la version :

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

    Pour .NET 8 et versions antérieures :

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

Erreurs de certificat TLS/SSL

Lorsque .NET est installé via Snap, il est possible que sur certaines distributions, les certificats TLS/SSL .NET ne soient pas trouvés et que vous recevez peut-être une erreur pendant 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]

Pour résoudre ce problème, définissez quelques variables d’environnement :

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

L’emplacement du certificat varie selon la distribution. Voici les emplacements des distributions où le problème a été observé :

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