Résoudre les échecs de lancement d’application

Cet article décrit certaines raisons courantes et les solutions possibles pour les échecs de lancement d’application. Il s’agit d’applications dépendantes du framework, qui s’appuient sur une installation .NET sur votre ordinateur.

Si vous connaissez déjà la version de .NET dont vous avez besoin, vous pouvez la télécharger à partir des téléchargements .NET.

Installation de .NET introuvable

Si une installation .NET est introuvable, l’application ne parvient pas à démarrer avec un message similaire à ce qui suit :

You must install .NET to run this application.

App: C:\repos\myapp\myapp.exe
Architecture: x64
Host version: 7.0.0
.NET location: Not found
You must install .NET to run this application.

App: /home/user/repos/myapp/myapp
Architecture: x64
Host version: 7.0.0
.NET location: Not found

Cela peut être dû à une combinaison de packages.

Les installations globales sont enregistrées dans /etc/dotnet/install_location. Sur certains systèmes, des fichiers spécifiques à l’architecture sont également présents, tels que /etc/dotnet/install_location_arm64.

You must install .NET to run this application.

App: /home/user/repos/myapp/myapp
Architecture: x64
Host version: 7.0.0
.NET location: Not found

Les installations globales sont enregistrées dans /etc/dotnet/install_location. Sur certains systèmes, des fichiers spécifiques à l’architecture sont également présents, tels que /etc/dotnet/install_location_arm64.

Le message d’erreur inclut un lien pour télécharger .NET. Vous pouvez suivre ce lien pour accéder à la page de téléchargement appropriée. Vous pouvez également choisir la version .NET (spécifiée par Host version) à partir des téléchargements .NET.

Dans la page de téléchargement de la version .NET requise, recherchez le téléchargement du runtime .NET correspondant à l’architecture répertoriée dans le message d’erreur. Vous pouvez ensuite l’installer en téléchargeant et en exécutant un programme d’installation.

.NET est disponible via différents gestionnaires de packages Linux. Pour plus d’informations, consultez Installer .NET sur Linux. (Les versions préliminaires de .NET ne sont généralement pas disponibles via les gestionnaires de package.)

Vous devez installer le package .NET Runtime pour la version appropriée, par exemple dotnet-runtime-10.0.

Vous pouvez également télécharger des fichiers binaires pour la version .NET requise sur la page de téléchargement pour l’architecture spécifiée.

Infrastructure requise introuvable

Si une version requise ou compatible n’est pas trouvée, l’application ne parvient pas à se lancer avec un message similaire à ce qui suit :

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

App: C:\repos\myapp\myapp.exe
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: C:\Program Files\dotnet\

The following frameworks were found:
  6.0.2 at [c:\Program Files\dotnet\shared\Microsoft.NETCore.App]
You must install or update .NET to run this application.

App: /home/user/repos/myapp/myapp
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: /usr/share/dotnet/

The following frameworks were found:
  6.0.2 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
You must install or update .NET to run this application.

App: /home/user/repos/myapp/myapp
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.15' (x64)
.NET location: /usr/local/share/dotnet/

The following frameworks were found:
  6.0.2 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

L’erreur indique le nom, la version et l’architecture de l’infrastructure manquante et l’emplacement auquel il est censé être installé. Pour exécuter l’application, vous pouvez installer un runtime compatible à l’emplacement .NET spécifié. Si l’application cible une version inférieure à celle que vous avez installée et que vous souhaitez l’exécuter sur une version ultérieure, vous pouvez également configurer le comportement de restauration pour l’application.

Installer un runtime compatible

Le message d’erreur inclut un lien pour télécharger l’infrastructure manquante. Vous pouvez suivre ce lien pour accéder à la page de téléchargement appropriée.

Vous pouvez également télécharger un runtime à partir de la page de téléchargements .NET . Il existe plusieurs téléchargements du runtime .NET.

Le tableau suivant présente les frameworks que chaque runtime contient.

Téléchargement du runtime Frameworks inclus
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
.NET Desktop Runtime Microsoft.NETCore.App
Microsoft.WindowsDesktop.App
Runtime .NET Microsoft.NETCore.App
Téléchargement du runtime Frameworks inclus
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
Runtime .NET Microsoft.NETCore.App

Sélectionnez un téléchargement d’exécution qui contient l’infrastructure manquante, puis installez-le.

Dans la page de téléchargement de la version .NET requise, recherchez le téléchargement du runtime correspondant à l’architecture répertoriée dans le message d’erreur. Vous souhaiterez probablement télécharger un programme d’installation.

.NET est disponible via différents gestionnaires de packages Linux. Pour plus d’informations , consultez Installer .NET sur Linux . (Les versions préliminaires de .NET ne sont généralement pas disponibles via les gestionnaires de package.)

Vous devez installer le package runtime .NET pour la version appropriée, comme dotnet-runtime-10.0 ou aspnetcore-runtime-10.0.

Vous pouvez également télécharger des fichiers binaires pour la version .NET requise sur la page de téléchargement pour l’architecture spécifiée.

Dans la plupart des cas, lorsque l’application qui n’a pas pu être lancée utilise une telle installation, l’emplacement .NET » dans le message d’erreur pointe vers :

%ProgramFiles%\dotnet

/usr/share/dotnet/

/usr/local/share/dotnet/

Vérifier la variable d’environnement DOTNET_ROOT

La DOTNET_ROOT variable d’environnement indique à l’application où trouver le dotnet pilote et les frameworks dont il a besoin. Si cette variable est définie de manière incorrecte ou pointe vers un emplacement qui ne contient pas d'installation de .NET valide, l'application ne parvient pas à démarrer même quand .NET est installé ailleurs sur l'ordinateur.

Problèmes courants à rechercher :

  • La variable pointe vers un emplacement incorrectDOTNET_ROOT peut être définie sur un chemin d’accès provenant d’une installation .NET précédente, d’un environnement CI ou d’un script qui ne reflète plus l’emplacement d’installation actuel.
  • La variable est définie quand elle ne doit pas être : si DOTNET_ROOT elle est définie dans l'environnement, .NET ignore entièrement l'emplacement d'installation par défaut. Supprimez ou mettez à jour la variable si .NET a été déplacée.
  • Incompatibilité d’architecture : utilisez la variante spécifique à l’architecture lors de l’exécution d’applications 32 bits sur un ordinateur 64 bits. Par exemple, configurez DOTNET_ROOT_X86 pour qu’il pointe vers l’installation 32 bits. Pour plus d’informations, consultez DOTNET_ROOT la variable d’environnement.

Pour diagnostiquer, imprimez la valeur actuelle de la variable et confirmez qu’elle pointe vers un répertoire qui contient une installation valide .NET :

echo $env:DOTNET_ROOT
echo $DOTNET_ROOT

Si la variable est définie, vérifiez que le chemin d’accès existe et contient la version .NET attendue. Si la variable n'est pas définie, .NET revient à l'emplacement d'installation par défaut de votre plateforme.

Vérifier l’emplacement d’installation

Sur Windows, .NET recherche un seul emplacement : le premier emplacement où se trouve une installation .NET. Si la recherche du framework échoue, vérifiez que .NET est installé à l’emplacement attendu.

Lorsque vous exécutez l’application via dotnet, les frameworks sont recherchés dans les sous-répertoires par rapport à dotnet. Lorsque vous exécutez l’application via son exécutable (apphost), .NET recherche les emplacements suivants dans l’ordre et utilise le premier emplacement où une installation est trouvée :

  1. Sous-répertoires relatifs à la variable d’environnement DOTNET_ROOT (si définie).
  2. Emplacement d’installation globalement inscrit (si défini) dans HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocation.
  3. Emplacement d’installation par défaut : %ProgramFiles%\dotnet (ou %ProgramFiles(x86)%\dotnet pour les processus 32 bits sur Windows 64 bits).

Si .NET est installé dans un emplacement autre que celui par défaut, assurez-vous que DOTNET_ROOT pointe vers cet emplacement afin que l’application puisse trouver l’installation appropriée.

Exécuter le script dotnet-install

Utilisez le script dotnet-install lorsque vous avez besoin d’une installation rapide et non administrateur, telle que dans les scénarios CI ou les environnements temporaires.

Le script installe .NET dans un dossier que vous choisissez. Il ne se comporte pas comme le programme d’installation standard du système d’exploitation et crée une installation privée.

Pour exécuter une application à partir de cette installation privée, définissez la DOTNET_ROOT variable d’environnement (ou la variante spécifique à l’architecture) lorsque vous lancez via un exécutable (connu sous le nom d’un apphost), ou lancez via l’hôte correspondant dotnet à partir du même emplacement d’installation.

Pour connaître les étapes d’installation sur Windows, consultez Installer avec PowerShell.

Pour connaître les étapes d’installation sur Linux, consultez Installer .NET avec un script.

Pour connaître les étapes d’installation sur macOS, consultez Installer .NET avec un script.

Pour en savoir plus sur les options du script et les détails de son comportement, consultez la référence des scripts dotnet-install.

Télécharger des fichiers binaires

Vous pouvez télécharger une archive binaire de .NET à partir de la page de téléchargement. À partir de la colonne Binaires du téléchargement du runtime, téléchargez la version binaire correspondant à l’architecture requise. Extrayez l’archive téléchargée à l’emplacement .NET spécifié dans le message d’erreur.

Pour plus d’informations sur l’installation manuelle, consultez Installer .NET sur Windows

Pour plus d’informations sur l’installation manuelle, consultez Installer .NET sur Linux

Pour plus d’informations sur l’installation manuelle, consultez Installer .NET sur macOS

Configurer le comportement de progression

Si vous avez déjà installé une version plus récente du framework requis, vous pouvez faire fonctionner l’application avec cette version en configurant son comportement de report vers l’avant.

Lors de l’exécution de l’application, vous pouvez spécifier l’option--roll-forward de ligne de commande ou définir la variable d’environnementDOTNET_ROLL_FORWARD. Par défaut, une application nécessite une infrastructure qui correspond à la même version majeure que celle cible par l’application, mais peut utiliser une version mineure ou corrective supérieure. Toutefois, les développeurs d’applications peuvent avoir spécifié un comportement différent. Pour plus d’informations, consultez Restauration par progression des applications dépendantes du framework.

Note

Étant donné que l’utilisation de cette option permet à l’application d’exécuter sur une version d’infrastructure différente de celle pour laquelle elle a été conçue, cela peut entraîner un comportement inattendu en raison de modifications entre les versions d’une infrastructure.

Voir aussi