Configuration de l’environnement dotnetup

Note

dotnetup est disponible en préversion publique. Ses fonctionnalités et son comportement peuvent changer avant la disponibilité générale.

Dotnetup peut configurer l’environnement pour rendre disponibles les kits de développement logiciel (SDK) .NET et les runtimes qu’il installe. Pour ce faire, définissez les variables d’environnement suivantes :

  • PATH: rend la dotnet commande disponible sur la ligne de commande. Les outils de développement tels que Visual Studio ou le kit de développement C# utilisent également le PATH pour localiser les SDK .NET et les runtimes.
  • DOTNET_ROOT: indique aux exécutables d’application dépendants du framework où trouver une installation .NET et ses runtimes partagés.

Dotnetup prend en charge différents modes d’accès qui déterminent où ces variables d’environnement sont définies. Vous pouvez choisir un mode d’accès dans la configuration dotnetup initiale ou ultérieure avec la dotnetup env commande.

Mode d’accès Behavior
none Ne modifie pas ces variables d’environnement. Exécutez .NET avec dotnetup dotnet.
shell Modifie le profil d’interpréteur de commandes pour définir ces variables d’environnement. Les processus démarrés à partir de cet interpréteur de commandes utilisent les sdk .NET et les runtimes installés par dotnetup.
everywhere Modifie le système PATH et définit la variable d’environnement utilisateur DOTNET_ROOT. Disponible uniquement sur Windows.

Par défaut, dotnetup s’ajoute également au PATH chemin d’accès, quel que soit le paramètre du mode d’accès. Cela peut être contrôlé avec dotnetup env set --dotnetup-on-path <true|false>.

Considérations relatives au mode Everywhere

Le mode Everywhere est la valeur par défaut sur Windows afin que les kits SDK et les runtimes installés par dotnetup soient disponibles à partir des outils de développement et des terminaux utilisant cmd comme interpréteur de commandes. Toutefois, il existe certaines choses à prendre en compte, principalement autour de la façon dont elle interagit avec les installations à l’échelle de l’ordinateur du Kit de développement logiciel (SDK) et du runtime .NET.

Les installations à l’échelle de la machine de .NET se trouvent dans le dossier Program Files. Ils peuvent être installés avec des programmes d’installation qui peuvent être téléchargés à partir de la page de téléchargements .NET. Visual Studio installe des installations à l’échelle de l’ordinateur du SDK .NET et du runtime .NET, et les programmes d’installation pour les applications dépendantes du framework peuvent également installer le runtime .NET dont elles dépendent dans l’emplacement à l’échelle de l’ordinateur.

En mode partout, la racine d’installation .NET gérée par dotnetup localement par l’utilisateur prend le pas sur la racine d’installation de .NET à l’échelle de l’ordinateur. Cela signifie que .NET sdk et runtimes installés dans Program Files ne seront pas disponibles. Les projets qui dépendent de ces kits SDK échoueront à la compilation si un SDK correspondant n’est pas installé. Si un runtime correspondant n’est pas installé, les applications dépendantes du framework ne parviendront pas à démarrer et afficheront une erreur indiquant « Vous devez installer ou mettre à jour .NET pour exécuter cette application ».

Pour éviter ces échecs, la configuration initiale de dotnetup offre la possibilité de migrer des installations système .NET sdk et runtime existantes. Vous pouvez également les migrer explicitement en exécutant dotnetup sdk install --migrate-from-system pour les SDK ou dotnetup runtime install --migrate-from-system pour les runtimes.

L’activation ou la désactivation du mode Everywhere nécessite la modification de la variable d’environnement PATH du système, ce qui nécessite une élévation (par exemple, une approbation de l’invite UAC ou « Exécuter en tant qu’administrateur »). Cela est dû au fait que les programmes d’installation à l’échelle de l’ordinateur pour .NET ajoutent le répertoire racine d’installation .NET de Program Files au chemin d’accès système et le chemin d’accès système est prioritaire sur le chemin d’accès au niveau utilisateur lors de la résolution des commandes. Dotnetup doit donc modifier la variable d’environnement PATH du système pour que le répertoire racine d’installation .NET de dotnetup soit prioritaire.

Étant donné que le chemin d’accès système s’applique à tous les utilisateurs, ces modifications peuvent avoir un impact sur d’autres utilisateurs. Le chemin d’accès ajouté au chemin d’accès système est par défaut sous le dossier AppData local de l’utilisateur. Cela ne sera normalement pas accessible à d’autres utilisateurs, donc cela n’affecterait pas la version de dotnet qui est résolue. Toutefois, les processus avec élévation de privilèges (c’est-à-dire en tant qu’administrateur) peuvent lire le chemin d’accès et peuvent résoudre de manière inattendue .NET sdk ou runtimes d’un autre utilisateur.

Interpréteurs de commandes pris en charge

Prise en charge de la génération de profil et de script :

  • Bash
  • Z shell
  • Poisson
  • Pwsh (PowerShell Core)
  • PowerShell

Si vous ne passez pas --shell, dotnetup détecte l’interpréteur de commandes actuel. Utilisez un interpréteur de commandes explicite lorsque la détection n’est pas disponible ou lorsque vous souhaitez mettre à jour un autre profil :

dotnetup env set shell --shell zsh

État stocké et observé

dotnetup.config.json stocke le mode d’accès sélectionné et indique si dotnetup doit être sur PATH. dotnetup env show compare cette configuration avec le profil et l’environnement actuels. Il signale la dérive si l’état observé ne correspond pas.

Réappliquez la configuration enregistrée pour corriger l’écart :

dotnetup env set

Terminal actuel

Les changements de profil et d’environnement Windows ne réécriront pas l’environnement du processus actuel. Ouvrez un nouveau terminal, chargez le profil modifié avec source ou évaluez le script généré.

Pour l’interpréteur de commandes Bash ou Z :

eval "$(dotnetup env script)"

Pour PowerShell :

dotnetup env script --shell pwsh | Invoke-Expression

env script suit la configuration stockée lorsque vous ne passez pas d’options de sélection. Utilisez --dotnet, --dotnetupou les deux pour sélectionner le contenu généré.

Supprimer la configuration de l’environnement

Supprimez toute la configuration de l’environnement géré :

dotnetup env clear

Cette commande équivaut à :

dotnetup env set none --dotnetup-on-path false

Il ne désinstalle pas les SDK ni les runtimes.