Alkalmazásindítási hibák elhárítása
Ez a cikk az alkalmazásindítási hibák néhány gyakori okát és lehetséges megoldását ismerteti. A keretrendszertől függő alkalmazásokhoz kapcsolódik, amelyek .NET-telepítésre támaszkodnak a gépen.
Ha már tudja, hogy melyik .NET-verzióra van szüksége, letöltheti a .NET-letöltésekből.
A .NET-telepítés nem található
Ha nem található .NET-telepítés, az alkalmazás nem indul el a következőhöz hasonló üzenettel:
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
Ennek oka lehet egy csomagkeverés.
A globális telepítések a következő helyen vannak regisztrálva: /etc/dotnet/install_location
. További információ: telepítési helyek.
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
A globális telepítések a következő helyen vannak regisztrálva: /etc/dotnet/install_location
. További információ: telepítési helyek.
A hibaüzenet tartalmazza a .NET letöltésére mutató hivatkozást. Ezt a hivatkozást követve elérheti a megfelelő letöltési lapot. A .NET-letöltésekből is kiválaszthatja a .NET-verziót (amelyet a Host version
rendszer megadott).
A szükséges .NET-verzió letöltési oldalán keresse meg a hibaüzenetben felsorolt architektúrának megfelelő .NET-futtatókörnyezet letöltését. Ezt követően telepítheti egy telepítő letöltésével és futtatásával.
A .NET számos Linux-csomagkezelőn keresztül érhető el. További információ: .NET telepítése Linuxon. (A .NET előzetes verziói általában nem érhetők el a csomagkezelőkön keresztül.)
Telepítenie kell a .NET Futtatókörnyezet csomagot a megfelelő verzióhoz, például dotnet-runtime6
.
Másik lehetőségként a szükséges .NET-verzió letöltési lapján letöltheti a bináris fájlokat a megadott architektúrához.
A szükséges keretrendszer nem található
Ha nem található egy szükséges keretrendszer vagy kompatibilis verzió, az alkalmazás nem indul el a következőhöz hasonló üzenettel:
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]
A hiba a hiányzó keretrendszer nevét, verzióját és architektúráját, valamint a telepítés helyét jelzi. Az alkalmazás futtatásához telepíthet egy kompatibilis futtatókörnyezetet a megadott ".NET-helyen". Ha az alkalmazás a telepített verziónál alacsonyabb verziót céloz meg, és magasabb verzióban szeretné futtatni, konfigurálhatja az alkalmazás roll-forward viselkedését is.
Kompatibilis futtatókörnyezet telepítése
A hibaüzenet tartalmaz egy hivatkozást a hiányzó keretrendszer letöltéséhez. Ezt a hivatkozást követve elérheti a megfelelő letöltési lapot.
Másik lehetőségként letöltheti a futtatókörnyezetet a .NET letöltési oldaláról. Több .NET-futtatókörnyezeti letöltés is van.
Az alábbi táblázat azokat a keretrendszereket mutatja be, amelyeket az egyes futtatókörnyezetek tartalmaznak.
Futtatókörnyezet letöltése | Belefoglalt keretrendszerek |
---|---|
ASP.NET Core Runtime | Microsoft.NETCore.App Microsoft.AspNetCore.App |
.NET Asztali futtatókörnyezet | Microsoft.NETCore.App Microsoft.WindowsDesktop.App |
.NET-futtatókörnyezet | Microsoft.NETCore.App |
Futtatókörnyezet letöltése | Belefoglalt keretrendszerek |
---|---|
ASP.NET Core Runtime | Microsoft.NETCore.App Microsoft.AspNetCore.App |
.NET-futtatókörnyezet | Microsoft.NETCore.App |
Válasszon ki egy futtatókörnyezeti letöltést, amely tartalmazza a hiányzó keretrendszert, majd telepítse.
A szükséges .NET-verzió letöltési oldalán keresse meg a hibaüzenetben felsorolt architektúrának megfelelő futtatókörnyezeti letöltést. Valószínűleg le szeretne tölteni egy telepítőt.
A .NET számos Linux-csomagkezelőn keresztül érhető el. Részletekért lásd: .NET telepítése Linuxon . (A .NET előzetes verziói általában nem érhetők el a csomagkezelőkön keresztül.)
Telepítenie kell a .NET-futtatókörnyezet-csomagot a megfelelő verzióhoz, például dotnet-runtime6
vagy dotnet-aspnet6
.
Másik lehetőségként a szükséges .NET-verzió letöltési lapján letöltheti a bináris fájlokat a megadott architektúrához.
A legtöbb esetben, ha az alkalmazás, amely nem indul el, egy ilyen telepítést használ, a hibaüzenetben szereplő ".NET-hely" a következőre mutat:
%ProgramFiles%\dotnet
/usr/share/dotnet/
/usr/local/share/dotnet/
Other options
Más telepítési és áthidaló lehetőségeket is figyelembe kell venni.
A dotnet-install szkript futtatása
Töltse le az operációs rendszer dotnet-install szkriptet . Futtassa a szkriptet a hibaüzenetben szereplő információk alapján megadott beállításokkal. A dotnet-install szkript referenciaoldala az összes elérhető lehetőséget megjeleníti.
Indítsa el a PowerShellt , és futtassa a következőt:
dotnet-install.ps1 -Architecture <architecture> -InstallDir <directory> -Runtime <runtime> -Version <version>
Az előző szakaszban megjelenő hibaüzenet például a következőnek felelne meg:
dotnet-install.ps1 -Architecture x64 -InstallDir "C:\Program Files\dotnet\" -Runtime dotnet -Version 5.0.15
Ha hibaüzenet jelenik meg, amely szerint a szkriptek futtatása le van tiltva, előfordulhat, hogy be kell állítania a végrehajtási szabályzatot a szkript futtatásának engedélyezéséhez:
Set-ExecutionPolicy Bypass -Scope Process
A szkripttel történő telepítésről további információt a Telepítés a PowerShell automatizálásával című témakörben talál.
./dotnet-install.sh --architecture <architecture> --install-dir <directory> --runtime <runtime> --version <version>
Az előző szakaszban megjelenő hibaüzenet például a következőnek felelne meg:
./dotnet-install.sh --architecture x64 --install-dir /usr/share/dotnet/ --runtime dotnet --version 5.0.15
A szkripttel történő telepítésről további információt a Szkriptes telepítés című témakörben talál.
./dotnet-install.sh --architecture <architecture> --install-dir <directory> --runtime <runtime> --version <version>
Az előző szakaszban megjelenő hibaüzenet például a következőnek felelne meg:
./dotnet-install.sh --architecture x64 --install-dir /usr/local/share/dotnet/ --runtime dotnet --version 5.0.15
A szkripttel történő telepítéssel kapcsolatos további információkért lásd : Telepítés bash automation használatával.
Bináris fájlok letöltése
A letöltési oldalról letöltheti a .NET bináris archívumát. A futtatókörnyezet letöltésének Bináris fájlok oszlopából töltse le a szükséges architektúrának megfelelő bináris kiadást. Bontsa ki a letöltött archívumot a hibaüzenetben megadott ".NET-helyre".
A manuális telepítéssel kapcsolatos további információkért lásd: .NET telepítése Windows rendszeren
A manuális telepítéssel kapcsolatos további információkért lásd : .NET telepítése Linux rendszeren
A manuális telepítéssel kapcsolatos további információkért lásd: .NET telepítése macOS rendszeren
A roll-forward viselkedés konfigurálása
Ha már telepítve van a szükséges keretrendszer egy magasabb verziója, az alkalmazás futtatható ezen a magasabb verzión a roll-forward viselkedés konfigurálásával.
Az alkalmazás futtatásakor megadhatja a parancssori beállítást, vagy beállíthatja a környezeti változótDOTNET_ROLL_FORWARD
.--roll-forward
Alapértelmezés szerint egy alkalmazásnak olyan keretrendszerre van szüksége, amely megegyezik az alkalmazás által megcélozott főverzióval, de nagyobb alverziót vagy javítást is használhat. Előfordulhat azonban, hogy az alkalmazásfejlesztők eltérő viselkedést határoztak meg. További információ: Keretrendszerfüggő alkalmazások roll-forward.
Megjegyzés:
Mivel ez a beállítás lehetővé teszi, hogy az alkalmazás a tervezett verziótól eltérő keretrendszerverzión fusson, a keretrendszer egyes verziói közötti változások miatt nem szándékos működést eredményezhet.
Kompatibilitástörő változások
A többszintű keresés le van tiltva a .NET 7-es és újabb verzióiban
Windows rendszeren a .NET 7 előtt az alkalmazás több telepítési helyen is kereshet keretrendszereket.
Alkönyvtárak a következőhöz képest:
dotnet
futtatható az alkalmazás futtatásakordotnet
.DOTNET_ROOT
környezeti változó (ha be van állítva) az alkalmazás végrehajtható (apphost
) futtatásához.
Globálisan regisztrált telepítési hely (ha be van állítva) a következőben
HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocation
: .A 64 bites Windowson a
%ProgramFiles(x86)%\dotnet
32 bites folyamatok alapértelmezett telepítési helye%ProgramFiles%\dotnet
.
Ez a többszintű keresési viselkedés alapértelmezés szerint engedélyezve volt, de a környezeti változó DOTNET_MULTILEVEL_LOOKUP=0
beállításával letiltható.
A .NET 7-es és újabb verzióit célzó alkalmazások esetében a többszintű keresés teljesen le van tiltva, és csak egy helyen – az első helyen, ahol .NET-telepítés található – keres. Egy alkalmazás futtatásakor dotnet
a keretrendszerek csak a kapcsolódó alkönyvtárakban dotnet
kereshetők. Ha egy alkalmazás futtatható (apphost
), a keretrendszerek csak a korábban felsorolt helyek közül az első helyen keresnek, ahol a .NET található.
További információ: A többszintű keresés le van tiltva.