Aracılığıyla paylaş


Çok düzeyli arama devre dışı bırakıldı

Windows'da, çerçeveye bağımlı .NET uygulamaları artık birden çok yükleme konumunda çerçeve aramaz.

Önceki davranış

Önceki sürümlerde, çerçeveye bağımlı bir .NET uygulaması, Windows'ta birden çok yükleme konumunda çerçeveler aramıştı. Konumlar:

  • Uygulamayı dotnet üzerinden çalıştırırken yürütülebilir dosyaya dotnet göre alt dizinler.
  • Uygulamayı yürütülebilir dosyası ()apphost aracılığıyla çalıştırırken, ortam değişkeninin DOTNET_ROOT değeri (ayarlandıysa) tarafından belirtilen konum.
  • HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation konumunda genel olarak kayıtlı yükleme konumu (ayarlandıysa).
  • Varsayılan yükleme konumu %ProgramFiles%\dotnet (veya 64 bit Windows'ta 32 bit işlemler için %ProgramFiles(x86)%\dotnet).

Bu çok düzeyli arama davranışı varsayılan olarak etkinleştirilmiştir ancak ortam değişkeni DOTNET_MULTILEVEL_LOOKUP=0ayarlanarak devre dışı bırakılabilir.

Yeni davranış

.NET 7 veya sonraki bir sürümü hedefleyen uygulamalar, .NET yüklemesinin bulunduğu ilk konum olan tek bir konumda çerçeveleri arar. Bir uygulamayı dotnet üzerinden çalıştırırken çerçeveler yalnızca yürütülebilir dosyaya dotnet göre alt dizinlerde aranabilir. Bir uygulamayı yürütülebilir dosyası ()apphost aracılığıyla çalıştırırken, çerçeveler yalnızca .NET'in bulunduğu aşağıdaki konumların ilkinde aranılır:

  • Ortam değişkeninin DOTNET_ROOT değeri (ayarlandıysa) tarafından belirtilen konum.
  • HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation konumunda genel olarak kayıtlı yükleme konumu (ayarlandıysa).
  • Varsayılan yükleme konumu %ProgramFiles%\dotnet (veya 64 bit Windows'ta 32 bit işlemler için %ProgramFiles(x86)%\dotnet).

Sürüm kullanıma sunulmuştur

.NET 7

Kesinti yaratan değişiklik türü

Bu değişiklik ikili uyumluluğu etkileyebilir.

Değişiklik nedeni

Çok katmanlı aramanın neden olduğu çok sayıda sorun vardır.

  • Kullanıcılar için karışıklık: Uygulama, özel bir yüklemeden .NET çalıştırmasına rağmen genel veya varsayılan bir yükleme konumu seçebilir.
  • Platformlar arasındaki tutarsızlık (Windows ile Windows dışı).
  • Genellikle otomatik sistemlerde davranış kesintileri: yeni bir küresel .NET güncellenmesi, yalıtılmış testleri ve derlemeleri etkileyebilir.
  • Performans sorunları.

Gerekli .NET sürümünün tek bir .NET yükleme konumunda yüklü olduğundan emin olun. Başlatılamaması durumunda gönderilen hata iletileri beklenen konumu içerir.

Etkilenen API'ler

Yok.