Share via


Problemen met het starten van apps oplossen

In dit artikel worden enkele veelvoorkomende redenen en mogelijke oplossingen beschreven voor fouten bij het starten van toepassingen. Het heeft betrekking op frameworkafhankelijke toepassingen, die afhankelijk zijn van een .NET-installatie op uw computer.

Als u al weet welke .NET-versie u nodig hebt, kunt u deze downloaden van .NET-downloads.

.NET-installatie is niet gevonden

Als er geen .NET-installatie wordt gevonden, kan de toepassing niet worden gestart met een bericht dat vergelijkbaar is met:

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

Dit kan het gevolg zijn van een combinatie van pakketten.

Globale installaties worden geregistreerd op de volgende locatie: /etc/dotnet/install_location. Zie installatielocaties voor meer informatie.

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

Globale installaties worden geregistreerd op de volgende locatie: /etc/dotnet/install_location. Zie installatielocaties voor meer informatie.

Het foutbericht bevat een koppeling om .NET te downloaden. U kunt deze koppeling volgen om naar de juiste downloadpagina te gaan. U kunt ook de .NET-versie (opgegeven door Host version) kiezen in .NET-downloads.

Zoek op de downloadpagina voor de vereiste .NET-versie de .NET Runtime-download die overeenkomt met de architectuur die wordt vermeld in het foutbericht. U kunt deze vervolgens installeren door een installatieprogramma te downloaden en uit te voeren.

.NET is beschikbaar via verschillende Linux-pakketbeheerders. Zie .NET installeren in Linux voor meer informatie. (Preview-versies van .NET zijn doorgaans niet beschikbaar via pakketbeheerders.)

U moet het .NET Runtime-pakket installeren voor de juiste versie, zoals dotnet-runtime6.

U kunt ook op de downloadpagina voor de vereiste .NET-versie binaire bestanden voor de opgegeven architectuur downloaden.

Vereist framework is niet gevonden

Als een vereist framework of compatibele versie niet wordt gevonden, kan de toepassing niet worden gestart met een bericht dat vergelijkbaar is met:

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]

De fout geeft de naam, versie en architectuur van het ontbrekende framework en de locatie aan waarop het wordt verwacht te worden geïnstalleerd. Als u de toepassing wilt uitvoeren, kunt u een compatibele runtime installeren op de opgegeven .NET-locatie. Als de toepassing is gericht op een lagere versie dan een versie die u hebt geïnstalleerd en u deze wilt uitvoeren op een hogere versie, kunt u ook roll-forward-gedrag voor de toepassing configureren.

Een compatibele runtime installeren

Het foutbericht bevat een koppeling om het ontbrekende framework te downloaden. U kunt deze koppeling volgen om naar de juiste downloadpagina te gaan.

U kunt ook een runtime downloaden vanaf de .NET-downloadpagina . Er zijn meerdere .NET Runtime-downloads.

In de volgende tabel ziet u de frameworks die elke runtime bevat.

Runtime downloaden Opgenomen frameworks
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
.NET Desktop Runtime Microsoft.NETCore.App
Microsoft.WindowsDesktop.App
.NET-runtime Microsoft.NETCore.App
Runtime downloaden Opgenomen frameworks
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
.NET-runtime Microsoft.NETCore.App

Selecteer een runtime-download die het ontbrekende framework bevat en installeer het.

Zoek op de downloadpagina voor de vereiste .NET-versie de runtimedownload die overeenkomt met de architectuur die wordt vermeld in het foutbericht. Waarschijnlijk wilt u een installatieprogramma downloaden.

.NET is beschikbaar via verschillende Linux-pakketbeheerders. Zie .NET installeren in Linux voor meer informatie. (Preview-versies van .NET zijn doorgaans niet beschikbaar via pakketbeheerders.)

U moet het .NET Runtime-pakket installeren voor de juiste versie, zoals dotnet-runtime6 of dotnet-aspnet6.

U kunt ook op de downloadpagina voor de vereiste .NET-versie binaire bestanden voor de opgegeven architectuur downloaden.

In de meeste gevallen verwijst de '.NET-locatie' in het foutbericht naar:

%ProgramFiles%\dotnet

/usr/share/dotnet/

/usr/local/share/dotnet/

Andere opties

Er zijn andere installatie- en tijdelijke oplossingen die u kunt overwegen.

Het dotnet-install-script uitvoeren

Download het dotnet-install-script voor uw besturingssysteem. Voer het script uit met opties op basis van de informatie in het foutbericht. Op de scriptverwijzingspagina voor dotnet-install worden alle beschikbare opties weergegeven.

Start PowerShell en voer het volgende uit:

dotnet-install.ps1 -Architecture <architecture> -InstallDir <directory> -Runtime <runtime> -Version <version>

Het foutbericht in de vorige sectie komt bijvoorbeeld overeen met:

dotnet-install.ps1 -Architecture x64 -InstallDir "C:\Program Files\dotnet\" -Runtime dotnet -Version 5.0.15

Als er een fout optreedt waarin staat dat het uitvoeren van scripts is uitgeschakeld, moet u mogelijk het uitvoeringsbeleid zo instellen dat het script kan worden uitgevoerd:

Set-ExecutionPolicy Bypass -Scope Process

Zie Installeren met PowerShell-automatisering voor meer informatie over de installatie met behulp van het script.

./dotnet-install.sh --architecture <architecture> --install-dir <directory> --runtime <runtime> --version <version>

Het foutbericht in de vorige sectie komt bijvoorbeeld overeen met:

./dotnet-install.sh --architecture x64 --install-dir /usr/share/dotnet/ --runtime dotnet --version 5.0.15

Zie Scripted install voor meer informatie over de installatie met behulp van het script.

./dotnet-install.sh --architecture <architecture> --install-dir <directory> --runtime <runtime> --version <version>

Het foutbericht in de vorige sectie komt bijvoorbeeld overeen met:

./dotnet-install.sh --architecture x64 --install-dir /usr/local/share/dotnet/ --runtime dotnet --version 5.0.15

Zie Installeren met bash-automatisering voor meer informatie over de installatie met behulp van het script.

Binaire bestanden downloaden

U kunt een binair archief van .NET downloaden vanaf de downloadpagina. Download in de kolom Binaire bestanden van de runtimedownload de binaire versie die overeenkomt met de vereiste architectuur. Pak het gedownloade archief uit naar de .NET-locatie die is opgegeven in het foutbericht.

Zie .NET installeren in Linux voor meer informatie over handmatige installatie

Gedrag van roll-forward configureren

Als u al een hogere versie van het vereiste framework hebt geïnstalleerd, kunt u ervoor zorgen dat de toepassing op die hogere versie wordt uitgevoerd door het gedrag van de roll-forward te configureren.

Wanneer u de toepassing uitvoert, kunt u de --roll-forward opdrachtregeloptie opgeven of de DOTNET_ROLL_FORWARD omgevingsvariabele instellen. Voor een toepassing is standaard een framework vereist dat overeenkomt met dezelfde primaire versie als de toepassing, maar een hogere secundaire versie of patchversie kan gebruiken. Toepassingsontwikkelaars hebben echter mogelijk een ander gedrag opgegeven. Zie Framework-afhankelijke apps roll-forward voor meer informatie.

Notitie

Omdat met deze optie de toepassing kan worden uitgevoerd op een andere frameworkversie dan de versie waarvoor deze is ontworpen, kan dit leiden tot onbedoeld gedrag als gevolg van wijzigingen tussen versies van een framework.

Wijzigingen die fouten veroorzaken

Opzoeken op meerdere niveaus uitgeschakeld voor .NET 7 en hoger

In Windows kon de toepassing vóór .NET 7 zoeken naar frameworks op meerdere installatielocaties.

  1. Submappen ten opzichte van:

    • dotnet uitvoerbaar bij het uitvoeren van de toepassing via dotnet.
    • DOTNET_ROOT omgevingsvariabele (indien ingesteld) bij het uitvoeren van de toepassing via het uitvoerbare bestand (apphost).
  2. Globaal geregistreerde installatielocatie (indien ingesteld) in HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocation.

  3. Standaardinstallatielocatie van %ProgramFiles%\dotnet (of %ProgramFiles(x86)%\dotnet voor 32-bits processen in 64-bits Windows).

Dit zoekgedrag op meerdere niveaus is standaard ingeschakeld, maar kan worden uitgeschakeld door de omgevingsvariabele DOTNET_MULTILEVEL_LOOKUP=0in te stellen.

Voor toepassingen die gericht zijn op .NET 7 en hoger, is zoeken op meerdere niveaus volledig uitgeschakeld en wordt slechts één locatie( de eerste locatie waar een .NET-installatie wordt gevonden) doorzocht. Wanneer een toepassing wordt uitgevoerd dotnet, worden frameworks alleen gezocht in submappen ten opzichte van dotnet. Wanneer een toepassing wordt uitgevoerd via het uitvoerbare bestand (apphost), worden frameworks alleen gezocht in de eerste van de eerder vermelde locaties waar .NET wordt gevonden.

Zie Zoeken op meerdere niveaus is uitgeschakeld voor meer informatie.

Zie ook