Dépanner dotnetup

Note

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

Cet article décrit les problèmes courants dotnetup et explique comment les résoudre.

Collecter des informations de diagnostic

Avant de résoudre un problème, collectez ces informations :

  • Affichez la dotnetup version, l’architecture, l’identificateur d’exécution et les installations vérifiées :

    dotnetup --info
    
  • Affichez les spécifications d’installation suivies et les installations, puis vérifiez les fichiers sur le disque :

    dotnetup list
    
  • Comparez la configuration d’environnement enregistrée à l’environnement actuel :

    dotnetup env show
    
  • Réexécutez la commande ayant échoué avec une sortie détaillée. Par exemple:

    dotnetup sdk install 10.0 --verbosity detailed
    

Les projets ne se compilent pas ou les applications ne démarrent pas après l’installation

Symptôme : Une fois que vous avez configuré dotnetup en mode everywhere sur Windows, les projets qui se compilaient auparavant ne se compilent plus. Ou, les applications dépendantes du framework montrent cette erreur :

You must install or update .NET to run this application.

Cause: En everywhere mode, l’installation gérée par dotnetup est prioritaire sur l’installation pour toute la machine dans Program Files. Les sdk et les runtimes qui existent uniquement dans l’installation à l’échelle de l’ordinateur ne sont pas disponibles.

Solution : Migrez les kits SDK et les runtimes à l’échelle de l’ordinateur vers l’installation gérée par dotnetup :

dotnetup sdk install --migrate-from-system
dotnetup runtime install --migrate-from-system

Ou, passez au mode d’accès none ou shell. Pour plus d’informations, consultez Considérations relatives au mode Partout.

dotnet n’utilise pas l’installation gérée par dotnetup

Symptôme : La commande dotnet de votre terminal n’utilise pas les SDK installés par dotnetup.

Cause : Le terminal a été ouvert avant que dotnetup ne modifie l’environnement, ou la configuration de l’environnement ne correspond pas à la configuration stockée.

Solution:

  1. Ouvrez un nouveau terminal. Les modifications apportées au profil du shell ou aux variables d'environnement Windows n'affectent pas les terminaux déjà ouverts.

  2. Exécutez dotnetup env show. S’il signale une dérive, exécutez dotnetup env set à nouveau pour appliquer à nouveau la configuration stockée.

  3. Pour configurer uniquement le terminal actuel, évaluez la sortie de dotnetup env script. Par exemple, dans Bash ou zsh :

    eval "$(dotnetup env script)"
    

    Dans PowerShell :

    dotnetup env script --shell pwsh | Invoke-Expression
    

Pour plus d’informations, consultez Gérer l’environnement dotnetup.

Le chemin d’installation contient déjà une installation non tracée

Symptôme : Une commande d’installation échoue avec cette erreur :

The install path '<path>' already contains a .NET installation that is not tracked by dotnetup. To avoid conflicts, use a different install path, remove the existing installation first, or use the --untracked option to install without tracking.

Cause :dotnetup n'installe pas les fichiers suivis dans un dossier qui contient une installation .NET qu'elle ne suit pas. Cette vérification empêche dotnetup de mélanger ses fichiers avec des fichiers qu’un autre outil possède.

Solution : Effectuez l’une des opérations suivantes :

  • Sélectionnez un autre dossier avec l’option --install-path .
  • Supprimez l’installation existante dans le dossier.
  • Si un autre outil possède le dossier, utilisez l’option --untracked . dotnetup ne répertorie pas, ne met pas à jour ou ne supprime pas les fichiers non suivis.

Pour plus d’informations, consultez Gérer les racines d’installation personnalisées.

L’exécutable dotnet est en cours d’utilisation

Symptôme : Sur Windows, une commande d’installation affiche un avertissement similaire à ce message :

Warning: Could not update dotnet executable at '<path>' - it is currently in use by another process. Close all running .NET applications and try again. The existing muxer will be retained. ...

Cause : Un processus en cours d’exécution utilise l’exécutable dotnet et dotnetup ne peut donc pas le remplacer. L’installation se poursuit avec l’exécutable existant dotnet . Un nouveau runtime peut nécessiter un dotnet exécutable plus récent.

Solution : Fermez toutes les applications .NET en cours d’exécution, les IDE et les serveurs de build. Ensuite, réexécutez la commande d’installation. Pour que la commande échoue au lieu de continuer avec un avertissement, utilisez l’option --require-muxer-update .

Un autre processus dotnetup est en cours d’exécution

Symptôme : Une commande affiche ce message et attend :

Another dotnetup process is running. Waiting for it to finish...

Cause :dotnetup Cela sérialise les modifications apportées à l’état d’installation partagé. Une autre dotnetup commande modifie le même état.

Solution : Attendez que l’autre commande se termine. Si aucun autre dotnetup processus n’est exécuté, recherchez dotnetup les processus qui ont cessé de répondre, puis terminez-les.

Le manifeste est corrompu

Symptôme : Une commande échoue avec cette erreur :

The dotnetup manifest at <path> is corrupt. Consider deleting it and re-running the install.

Le message peut également indiquer que le fichier a été modifié en dehors de dotnetup.

Cause : Le dotnetup_manifest.json fichier n’est pas valide. Un autre processus ou une modification manuelle peut avoir modifié le fichier.

Solution : Supprimez le fichier manifeste et le fichier .sha256 associé du répertoire de données dotnetup. Réinstallez ensuite les kits sdk et les runtimes dont vous avez besoin. Étant donné que le manifeste ne suit plus la racine d’installation existante, vous devrez peut-être d’abord supprimer ce dossier. Pour l’emplacement du répertoire de données, consultez Mettre à jour ou supprimer dotnetup.

Note

Ne modifiez pas le fichier manifeste. Utilisez les commandes dotnetup pour modifier l’état suivi.

Le fichier de configuration est endommagé

Symptôme : Une commande affiche cet avertissement :

Warning: The dotnetup config file at <path> appears to be corrupted and could not be read: ...

Cause : Le dotnetup.config.json fichier n’est pas valide. dotnetup ignore le fichier.

Solution: Exécutez dotnetup env set avec le mode d’accès souhaité, ou exécutez de nouveau dotnetup init. Ces commandes écrivent une nouvelle configuration.

Un profil d’interpréteur de commandes contient un bloc dotnetup mal formé

Symptôme :env commande échoue avec une erreur similaire à ce message :

The shell profile '<path>' contains a malformed dotnetup block: '<begin marker>' does not have a matching '<end marker>'. Remove or repair the block manually and try again.

Cause :dotnetup indique les lignes qu’il ajoute à un profil d’interpréteur de commandes avec des commentaires de début et de fin. L’un de ces commentaires est manquant.

Solution : Ouvrez le profil du shell dans un éditeur de texte. Supprimez le bloc dotnetup incomplet ou ajoutez le marqueur manquant. Réexécutez ensuite la commande.

L’élévation de privilèges a été annulée

Symptôme : Sur Windows, une commande qui active ou désactive le mode everywhere affiche ce message :

Elevation was cancelled. The system PATH was not modified.

Cause : Les modifications apportées au système PATH nécessitent une élévation. L’invite de contrôle de compte d’utilisateur (UAC) a été annulée.

Solution : Réexécutez la commande et approuvez l’invite UAC. Ou sélectionnez le mode d’accès shell ou none, qui ne nécessite pas d’élévation.

Un manifeste de mise en production a expiré

Symptôme : Une installation ou une mise à jour échoue pendant la vérification du manifeste de mise en production avec le code d’échec ExpiredNow .

Cause : L’heure système actuelle est au moment ou après l’heure d’expiration du manifeste. Le manifeste peut être arrivé à expiration, ou l’horloge système peut être incorrecte. Une signature valide ne rend pas un manifeste expiré acceptable.

Solution:

  1. Vérifiez la date et l’heure de votre système. Corrigez l’horloge si nécessaire.
  2. Réessayez la commande. Si un proxy fournit des métadonnées de version en cache, demandez à votre administrateur de vérifier s’il sert un manifeste expiré.
  3. Si l’horloge est correcte et que l’échec persiste, signalez le problème avec la sortie détaillée de la commande.

Ne modifiez pas le manifeste ni modifiez l’horloge pour contourner les vérifications d’expiration. Pour plus d’informations, consultez Expiration du manifeste.

Une installation est bloquée par une stratégie informatique

Symptôme : Une installation d’une version quotidienne ou préliminaire échoue avec un message indiquant qu’une stratégie informatique nécessite des téléchargements avec signature de code.

Cause : Un administrateur a bloqué les téléchargements non signés sur l’ordinateur.

Solution : Installez une version stable ou demandez à votre administrateur de supprimer la règle. Pour plus d’informations, consultez Comment dotnetup vérifie les téléchargements.

Signaler un problème

Si cet article ne résout pas votre problème, recherchez les problèmes dotnetup existants. Si vous ne trouvez pas de correspondance, ouvrez un nouveau problème dans le référentiel dotnet/sdk avec le modèle de problème dotnetup . Incluez la sortie de dotnetup --info et celle de la commande ayant échoué avec --verbosity detailed.

Pour des questions et des suggestions, utilisez des discussions dotnetup.

Voir aussi