Řešení potíží se selháním spuštění aplikace

Tento článek popisuje některé běžné důvody a možná řešení selhání spuštění aplikace. Souvisí s aplikacemi závislými na rozhraní, které spoléhají na instalaci .NET na vašem počítači.

Pokud už víte, kterou verzi .NET potřebujete, můžete si ji stáhnout ze souborů ke stažení .NET.

Instalace .NET nebyla nalezena.

Pokud se instalace .NET nenajde, aplikace se nespustí se zprávou podobnou této:

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

Příčinou může být kombinace balíčků.

Globální instalace jsou registrovány v následujícím umístění: /etc/dotnet/install_location. Další informace najdete v tématu umístění instalace.

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

Globální instalace jsou registrovány v následujícím umístění: /etc/dotnet/install_location. Další informace najdete v tématu umístění instalace.

Chybová zpráva obsahuje odkaz ke stažení .NET. Pomocí tohoto odkazu se dostanete na příslušnou stránku pro stažení. Můžete také vybrat verzi .NET (určenou Host version) ze stažených souborů .NET.

Na stránce pro stažení požadované verze .NET vyhledejte stažení modulu runtime .NET, které odpovídá architektuře uvedené v chybové zprávě. Potom ho můžete nainstalovat stažením a spuštěním instalačního programu.

.NET je k dispozici prostřednictvím různých správců balíčků Pro Linux. Další informace naleznete v tématu Instalace .NET v Linuxu. (Verze Preview .NET nejsou obvykle dostupné prostřednictvím správců balíčků.)

Musíte nainstalovat balíček .NET Runtime pro příslušnou verzi, například dotnet-runtime6.

Případně můžete na stránce pro stažení požadované verze .NET stáhnout binární soubory pro zadanou architekturu.

Požadovaná architektura nebyla nalezena.

Pokud požadovaná architektura nebo kompatibilní verze nebyla nalezena, aplikace se nespustí se zprávou podobnou této:

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]

Tato chyba označuje název, verzi a architekturu chybějící architektury a umístění, ve kterém se očekává, že se má nainstalovat. Ke spuštění aplikace můžete nainstalovat kompatibilní modul runtime v zadaném umístění .NET. Pokud aplikace cílí na nižší verzi, kterou jste nainstalovali a chcete ji spustit na vyšší verzi, můžete pro aplikaci nakonfigurovat také postupné chování .

Instalace kompatibilního modulu runtime

Chybová zpráva obsahuje odkaz ke stažení chybějící architektury. Pomocí tohoto odkazu se dostanete na příslušnou stránku pro stažení.

Modul runtime si také můžete stáhnout ze stránky pro stahování .NET. Existuje několik stažení modulu runtime .NET.

Následující tabulka ukazuje architektury, které každý modul runtime obsahuje.

Stažení modulu runtime Zahrnuté architektury
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
.NET Desktop Runtime Microsoft.NETCore.App
Microsoft.WindowsDesktop.App
Modul runtime .NET Microsoft.NETCore.App
Stažení modulu runtime Zahrnuté architektury
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
Modul runtime .NET Microsoft.NETCore.App

Vyberte stažení modulu runtime, které obsahuje chybějící architekturu, a pak ho nainstalujte.

Na stránce pro stažení požadované verze .NET vyhledejte stažení modulu runtime, které odpovídá architektuře uvedené v chybové zprávě. Pravděpodobně budete chtít stáhnout instalační program.

.NET je k dispozici prostřednictvím různých správců balíčků Pro Linux. Podrobnosti najdete v tématu Instalace .NET v Linuxu . (Verze Preview .NET nejsou obvykle dostupné prostřednictvím správců balíčků.)

Potřebujete nainstalovat balíček modulu runtime .NET pro příslušnou verzi, například dotnet-runtime6 nebo dotnet-aspnet6.

Případně můžete na stránce pro stažení požadované verze .NET stáhnout binární soubory pro zadanou architekturu.

Ve většině případů, když aplikace, která se nepodařilo spustit, používá takovou instalaci, umístění .NET v chybové zprávě odkazuje na:

%ProgramFiles%\dotnet

/usr/share/dotnet/

/usr/local/share/dotnet/

Další možnosti

Existují další možnosti instalace a alternativního řešení, které je potřeba zvážit.

Spuštění skriptu dotnet-install

Stáhněte si skript dotnet-install pro váš operační systém. Spusťte skript s možnostmi na základě informací v chybové zprávě. Referenční stránka skriptu dotnet-install zobrazuje všechny dostupné možnosti.

Spusťte PowerShell a spusťte:

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

Například chybová zpráva v předchozí části by odpovídala:

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

Pokud dojde k chybě s oznámením, že spouštění skriptů je zakázané, možná budete muset nastavit zásady spouštění, aby skript mohl běžet:

Set-ExecutionPolicy Bypass -Scope Process

Další informace o instalaci pomocí skriptu najdete v tématu Instalace pomocí automatizace PowerShellu.

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

Například chybová zpráva v předchozí části by odpovídala:

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

Další informace o instalaci pomocí skriptu naleznete v tématu Skriptovaná instalace.

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

Například chybová zpráva v předchozí části by odpovídala:

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

Další informace o instalaci pomocí skriptu naleznete v tématu Instalace pomocí automatizace Bash.

Stažení binárních souborů

Binární archiv .NET si můžete stáhnout ze stránky pro stažení. Ze sloupce Binární soubory stahování modulu runtime stáhněte binární verzi odpovídající požadované architektuře. Extrahujte stažený archiv do umístění .NET zadaného v chybové zprávě.

Další informace o ruční instalaci naleznete v tématu Instalace .NET ve Windows

Další informace o ruční instalaci naleznete v tématu Instalace .NET v Linuxu.

Další informace o ruční instalaci naleznete v tématu Instalace .NET v systému macOS

Konfigurace chování roll-forward

Pokud už máte nainstalovanou vyšší verzi požadované architektury, můžete aplikaci spustit na této vyšší verzi konfigurací jeho postupného chování.

Při spuštění aplikace můžete zadat možnost příkazového --roll-forward řádku nebo nastavit proměnnou DOTNET_ROLL_FORWARDprostředí. Ve výchozím nastavení aplikace vyžaduje architekturu, která odpovídá stejné hlavní verzi, jakou cílí aplikace, ale může použít vyšší podverzi nebo verzi opravy. Vývojáři aplikací ale možná zadali jiné chování. Další informace najdete v tématu O zavedení aplikací závislých na architektuře.

Poznámka:

Vzhledem k tomu, že použití této možnosti umožňuje aplikaci běžet na jiné verzi architektury, než je verze, pro kterou byla navržena, může mít za následek neočekávané chování způsobené změnami mezi verzemi architektury.

Změny způsobující chyby

Vyhledávání na více úrovních zakázáno pro .NET 7 a novější

Ve Windows může aplikace před .NET 7 hledat architektury v několika umístěních instalace.

  1. Podadresáře vzhledem k:

    • dotnet spustitelný soubor při spuštění aplikace prostřednictvím dotnet.
    • DOTNET_ROOT Proměnná prostředí (pokud je nastavená) při spuštění aplikace prostřednictvím jejího spustitelného souboru (apphost).
  2. Globálně zaregistrované umístění instalace (pokud je nastaveno) v HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocationsouboru .

  3. Výchozí umístění %ProgramFiles%\dotnet instalace (nebo %ProgramFiles(x86)%\dotnet pro 32bitové procesy v 64bitovém systému Windows)

Toto chování vyhledávání na více úrovních bylo ve výchozím nastavení povoleno, ale mohlo by být zakázáno nastavením proměnné DOTNET_MULTILEVEL_LOOKUP=0prostředí .

U aplikací, které cílí na .NET 7 a novější, je vyhledávání na více úrovních zcela zakázané a prohledá se jenom jedno umístění – první umístění, kde se najde instalace .NET. Když je aplikace spuštěna dotnet, architektury jsou prohledány pouze v podadresářích vzhledem k dotnet. Když je aplikace spuštěna prostřednictvím svého spustitelného souboru (apphost), architektury se vyhledávají pouze v prvním z dříve uvedených umístění, kde se nachází .NET.

Další informace naleznete v tématu Víceúrovňové vyhledávání je zakázáno.

Viz také