Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Unter Windows suchen frameworkabhängige .NET-Anwendungen nicht mehr nach Frameworks an mehreren Installationsspeicherorten.
Vorheriges Verhalten
In früheren Versionen suchte eine frameworkabhängige .NET-Anwendung nach Frameworks an mehreren Installationsspeicherorten unter Windows. Die Standorte waren:
- Bei Ausführung der Anwendung über dotnet Unterverzeichnisse relativ zur ausführbaren
dotnet-Datei. - Beim Ausführen der Anwendung über die ausführbare Datei (
apphost) der durch den Wert derDOTNET_ROOT-Umgebungsvariablen angegebene Speicherort (sofern festgelegt). - Der global registrierte Installationsspeicherort in HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (sofern festgelegt).
- Der 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.
Neues Verhalten
Anwendungen, die auf .NET 7 oder eine höhere Version abzielen, suchen nur an einem Speicherort nach Frameworks. Dies ist der erste Speicherort, an dem eine .NET-Installation gefunden wird. Beim Ausführen einer Anwendung über dotnet werden Frameworks nur in Unterverzeichnissen relativ zur ausführbaren dotnet-Datei gesucht. Wenn eine Anwendung über ihre ausführbare Datei (apphost) ausgeführt wird, wird nur am ersten der folgenden Speicherorte, an denen .NET gefunden wird, nach Frameworks gesucht:
- Der durch den Wert der
DOTNET_ROOTUmgebungsvariable angegebene Position (falls festgelegt). - Der global registrierte Installationsspeicherort in HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (sofern festgelegt).
- Der Standardinstallationsort von %ProgramFiles%\dotnet (oder %ProgramFiles(x86)%\dotnet für 32-Bit-Prozesse unter 64-Bit-Windows).
Eingeführte Version
.NET 7
Art der einschneidenden Änderung
Diese Änderung kann sich auf die Binäre Kompatibilität auswirken.
Grund für Änderung
Es gab zahlreiche Probleme, die durch eine mehrstufige Suche verursacht wurden:
- Verwirrung für Benutzer: Die Anwendung kann einen globalen oder Standardinstallationsspeicherort auswählen, obwohl .NET von einer privaten Installation ausgeführt wird.
- Inkonsistenz zwischen Plattformen (Windows und Nicht-Windows).
- Verhaltensunterbrechungen, häufig in automatisierten Systemen: Eine neue globale .NET-Installation kann sich auf andere isolierte Builds und Tests auswirken.
- Leistungsaspekte.
Empfohlene Aktion
Stellen Sie sicher, dass die erforderliche Version von .NET am einzelnen .NET-Installationsspeicherort installiert ist. Die Fehlermeldungen, die bei einem Fehler beim Starten ausgegeben werden, enthalten den erwarteten Speicherort.
Betroffene APIs
Keiner.