Delen via


Opzoeken op meerdere niveaus is uitgeschakeld

In Windows zoeken frameworkafhankelijke .NET-toepassingen niet langer naar frameworks op meerdere installatielocaties.

Vorig gedrag

In eerdere versies heeft een frameworkafhankelijke .NET-toepassing gezocht naar frameworks in meerdere installatielocaties in Windows. De locaties waren:

  • Bij het uitvoeren van de toepassing via dotnet, submappen ten opzichte van het dotnet uitvoerbare bestand.
  • Bij het uitvoeren van de toepassing via het uitvoerbare bestand (apphost), de locatie die is opgegeven door de waarde van de DOTNET_ROOT omgevingsvariabele (indien ingesteld).
  • De globaal geregistreerde installatielocatie in HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (indien ingesteld).
  • De standaardinstallatielocatie van %ProgramFiles%\dotnet (of %ProgramFiles(x86)%\dotnet voor 32-bits processen in 64-bits Windows).

Dit zoekgedrag op meerdere niveaus is standaard ingeschakeld, maar kan worden uitgeschakeld door de omgevingsvariabele DOTNET_MULTILEVEL_LOOKUP=0in te stellen.

Nieuw gedrag

Toepassingen die zich richten op .NET 7 of een latere versie, zoeken alleen naar frameworks op één locatie. Dit is de eerste locatie waar een .NET-installatie wordt gevonden. Wanneer u een toepassing uitvoert via dotnet, worden frameworks alleen gezocht in submappen ten opzichte van het dotnet uitvoerbare bestand. Wanneer u een toepassing uitvoert via het uitvoerbare bestand (apphost), worden frameworks alleen gezocht in de eerste van de volgende locaties waar .NET wordt gevonden:

  • De locatie die is opgegeven door de waarde van de DOTNET_ROOT omgevingsvariabele (indien ingesteld).
  • De globaal geregistreerde installatielocatie in HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (indien ingesteld).
  • De standaardinstallatielocatie van %ProgramFiles%\dotnet (of %ProgramFiles(x86)%\dotnet voor 32-bits processen in 64-bits Windows).

Versie geïntroduceerd

.NET 7

Type wijziging die fouten veroorzaken

Deze wijziging kan van invloed zijn op binaire compatibiliteit.

Reden voor wijziging

Er zijn talloze problemen veroorzaakt door opzoeken op meerdere niveaus:

  • Verwarring voor gebruikers: de toepassing kan een algemene of standaardinstallatielocatie kiezen, ondanks het uitvoeren van .NET vanaf een privé-installatie.
  • Inconsistentie tussen platforms (Windows versus niet-Windows).
  • Gedrag wordt verbroken, vaak in geautomatiseerde systemen: een nieuwe globale .NET-installatie kan van invloed zijn op anderszins geïsoleerde builds en tests.
  • Prestatieproblemen.

Zorg ervoor dat de vereiste versie van .NET is geïnstalleerd op de enkele .NET-installatielocatie. De foutberichten die worden verzonden bij het starten, bevatten de verwachte locatie.

Betrokken API's

Geen.