Freigeben über


Behandeln von App-Startfehlern

In diesem Artikel werden einige häufige Gründe und mögliche Lösungen für Anwendungsstartfehler beschrieben. Sie bezieht sich auf frameworkabhängige Anwendungen, die auf einer . NET-Installation auf Ihrem Computer basieren.

Wenn Sie bereits wissen, welche .NET-Version Sie benötigen, können Sie sie aus .NET-Downloads herunterladen.

.NET-Installation nicht gefunden

Wenn eine .NET-Installation nicht gefunden wird, kann die Anwendung nicht mit einer Meldung wie folgt gestartet werden:

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

Dies kann auf eine Paketmischung zurückzuführen sein.

Globale Installationen werden am folgenden Speicherort registriert: /etc/dotnet/install_location Weitere Informationen finden Sie unter Installationsspeicherorte.

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 Installationen werden am folgenden Speicherort registriert: /etc/dotnet/install_location Weitere Informationen finden Sie unter Installationsspeicherorte.

Die Fehlermeldung enthält einen Link zum Herunterladen von .NET. Sie können diesem Link folgen, um zur entsprechenden Downloadseite zu gelangen. Sie können auch die .NET-Version (angegeben durch Host version) aus .NET-Downloads auswählen.

Suchen Sie auf der Downloadseite für die erforderliche . NET-Version den .NET-Runtime-Download , der der in der Fehlermeldung aufgeführten Architektur entspricht. Sie können es dann installieren, indem Sie ein Installationsprogramm herunterladen und ausführen.

.NET ist über verschiedene Linux-Paketmanager verfügbar. Weitere Informationen finden Sie unter Installieren von .NET unter Linux. (Vorschauversionen von .NET sind in der Regel nicht über Paketmanager verfügbar.)

Sie müssen das .NET-Runtime-Paket für die entsprechende Version installieren, z dotnet-runtime6. B. .

Alternativ können Sie auf der Downloadseite für die erforderliche .NET-Version Binärdateien für die angegebene Architektur herunterladen.

Erforderliches Framework nicht gefunden

Wenn ein erforderliches Framework oder eine kompatible Version nicht gefunden wird, kann die Anwendung nicht mit einer Meldung wie folgt gestartet werden:

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]

Der Fehler gibt den Namen, die Version und die Architektur des fehlenden Frameworks und den Speicherort an, an dem es installiert werden soll. Um die Anwendung auszuführen, können Sie eine kompatible Laufzeit am angegebenen ".NET-Speicherort" installieren. Wenn die Anwendung auf eine niedrigere Version als eine installierte Version ausgerichtet ist und Sie sie auf einer höheren Version ausführen möchten, können Sie auch das Roll-Forward-Verhalten für die Anwendung konfigurieren.

Installieren einer kompatiblen Laufzeit

Die Fehlermeldung enthält einen Link zum Herunterladen des fehlenden Frameworks. Sie können diesem Link folgen, um zur entsprechenden Downloadseite zu gelangen.

Alternativ können Sie eine Laufzeit von der .NET-Downloadseite herunterladen. Es gibt mehrere .NET-Laufzeitdownloads.

Die folgende Tabelle zeigt die Frameworks, die jede Laufzeit enthält.

Laufzeitdownload Enthaltene 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
Laufzeitdownload Enthaltene Frameworks
ASP.NET Core Runtime Microsoft.NETCore.App
Microsoft.AspNetCore.App
.NET Runtime Microsoft.NETCore.App

Wählen Sie einen Laufzeitdownload aus, der das fehlende Framework enthält, und installieren Sie es dann.

Suchen Sie auf der Downloadseite für die erforderliche .NET-Version den Laufzeitdownload, der der in der Fehlermeldung aufgeführten Architektur entspricht. Wahrscheinlich möchten Sie ein Installationsprogramm herunterladen.

.NET ist über verschiedene Linux-Paketmanager verfügbar. Weitere Informationen finden Sie unter Installieren von .NET unter Linux . (Vorschauversionen von .NET sind in der Regel nicht über Paketmanager verfügbar.)

Sie müssen das .NET-Laufzeitpaket für die entsprechende Version wie dotnet-runtime6 oder dotnet-aspnet6.

Alternativ können Sie auf der Downloadseite für die erforderliche .NET-Version Binärdateien für die angegebene Architektur herunterladen.

Wenn die Anwendung, die nicht gestartet werden konnte, in den meisten Fällen eine solche Installation verwendet, verweist der ".NET-Speicherort" in der Fehlermeldung auf:

%ProgramFiles%\dotnet

/usr/share/dotnet/

/usr/local/share/dotnet/

Weitere Optionen

Es gibt weitere Installations- und Problemumgehungsoptionen, die Sie berücksichtigen sollten.

Ausführen des dotnet-install-Skripts

Laden Sie das dotnet-install-Skript für Ihr Betriebssystem herunter. Führen Sie das Skript mit Optionen basierend auf den Informationen in der Fehlermeldung aus. Auf der Referenzseite des Dotnet-Installationsskripts werden alle verfügbaren Optionen angezeigt.

Starten Sie PowerShell , und führen Sie Folgendes aus:

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

Die Fehlermeldung im vorherigen Abschnitt würde z. B. folgendem entsprechen:

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

Wenn ein Fehler auftritt, der besagt, dass das Ausführen von Skripts deaktiviert ist, müssen Sie möglicherweise die Ausführungsrichtlinie festlegen, damit das Skript ausgeführt werden kann:

Set-ExecutionPolicy Bypass -Scope Process

Weitere Informationen zur Installation mithilfe des Skripts finden Sie unter Installieren mit PowerShell-Automatisierung.

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

Die Fehlermeldung im vorherigen Abschnitt würde z. B. folgendem entsprechen:

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

Weitere Informationen zur Installation mithilfe des Skripts finden Sie unter Scripted install.

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

Die Fehlermeldung im vorherigen Abschnitt würde z. B. folgendem entsprechen:

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

Weitere Informationen zur Installation mithilfe des Skripts finden Sie unter Installieren von .NET mit einem Skript.

Herunterladen von Binärdateien

Sie können ein binäres Archiv von .NET von der Downloadseite herunterladen. Laden Sie aus der Spalte "Binärdateien " des Laufzeitdownloads die binärversion herunter, die der erforderlichen Architektur entsprechen. Extrahieren Sie das heruntergeladene Archiv an den in der Fehlermeldung angegebenen ".NET-Speicherort".

Weitere Informationen zur manuellen Installation finden Sie unter Installieren von .NET unter Windows

Weitere Informationen zur manuellen Installation finden Sie unter Installieren von .NET unter Linux

Weitere Informationen zur manuellen Installation finden Sie unter Installieren von .NET unter macOS

Konfigurieren des Roll-Forward-Verhaltens

Wenn Sie bereits eine höhere Version des erforderlichen Frameworks installiert haben, können Sie die Anwendung auf dieser höheren Version ausführen, indem Sie das Roll-Forward-Verhalten konfigurieren.

Beim Ausführen der Anwendung können Sie die --roll-forward Befehlszeilenoption angeben oder die DOTNET_ROLL_FORWARD Umgebungsvariable festlegen. Standardmäßig erfordert eine Anwendung ein Framework, das der gleichen Hauptversion entspricht, auf die die Anwendung ausgerichtet ist, aber eine höhere Neben- oder Patchversion verwenden kann. Anwendungsentwickler haben jedoch möglicherweise ein anderes Verhalten angegeben. Weitere Informationen finden Sie unter Framework-abhängige Apps für den Roll-Forward.

Hinweis

Da mit dieser Option die Anwendung auf einer anderen Frameworkversion ausgeführt werden kann als die, für die sie entworfen wurde, kann die Anwendung aufgrund von Änderungen zwischen Versionen eines Frameworks zu unbeabsichtigtem Verhalten führen.

Bahnbrechende Änderungen

Mehrstufige Suche für .NET 7 und höher deaktiviert

Unter Windows könnte die Anwendung vor .NET 7 nach Frameworks an mehreren Installationsspeicherorten suchen.

  1. Unterverzeichnisse relativ zu:

    • dotnet ausführbare Datei beim Ausführen der Anwendung über dotnet.
    • DOTNET_ROOT Umgebungsvariable (falls festgelegt) beim Ausführen der Anwendung über die ausführbare Datei (apphost).
  2. Global registrierter Installationsspeicherort (falls festgelegt) in HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\<arch>\InstallLocation.

  3. Standardinstallationsort von %ProgramFiles%\dotnet (oder %ProgramFiles(x86)%\dotnet für 32-Bit-Prozesse unter 64-Bit-Windows).

Dieses Mehrebenen-Nachschlageverhalten wurde standardmäßig aktiviert, konnte jedoch durch Festlegen der Umgebungsvariable DOTNET_MULTILEVEL_LOOKUP=0deaktiviert werden.

Für Anwendungen, die auf .NET 7 und höher abzielen, wird die Suche auf mehreren Ebenen vollständig deaktiviert, und nur ein Speicherort – der erste Speicherort, an dem eine .NET-Installation gefunden wird – wird durchsucht. Wenn eine Anwendung ausgeführt dotnetwird, werden Frameworks nur in Unterverzeichnissen relativ zu dotnet. Wenn eine Anwendung über die ausführbare Datei (apphost) ausgeführt wird, werden Frameworks nur an den ersten der zuvor aufgeführten Speicherorte gesucht, an denen .NET gefunden wird.

Weitere Informationen finden Sie unter "Nachschlagevorgang auf mehreren Ebenen" ist deaktiviert.

Siehe auch