Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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.