Tek dosya yayımlama biçimi için derlemeyle ilgili API davranışı değişiklikleri
Bir derlemenin dosya konumuyla ilgili birden çok API, tek dosyalı yayımlama biçiminde çağrıldıklarında davranış değişikliklerine sahiptir.
Açıklama değiştirildi
.NET 5 ve sonraki sürümleri için tek dosyalı yayımlamada paketlenmiş derlemeler diske ayıklanması yerine bellekten yüklenir. Tek dosyayla yayımlanan uygulamalar için bu, konumla ilgili bazı API'lerin .NET 5 ve sonraki sürümlerde önceki .NET sürümlerinden farklı değerler döndüreceği anlamına gelir. Değişiklikler aşağıdaki gibidir:
API | Önceki sürümler | .NET 5 ve üzeri |
---|---|---|
Assembly.Location | Ayıklanan DLL dosya yolunu döndürür | Paketlenmiş derlemeler için boş dize döndürür |
Assembly.CodeBase | Ayıklanan DLL dosya yolunu döndürür | Paketlenmiş derlemeler için özel durum oluşturur |
Assembly.GetFile(String) | Paketlenmiş derlemeler için döndürür null |
Paketlenmiş derlemeler için özel durum oluşturur |
Environment.GetCommandLineArgs()[0] |
Değer, giriş noktası DLL'sinin adıdır | Değer, ana bilgisayar yürütülebilir dosyasının adıdır |
AppContext.BaseDirectory | Değer geçici ayıklama dizinidir | Değer, konak yürütülebilir dosyasının içeren dizinidir |
Sürüm kullanıma sunulmuştur
5.0
Önerilen eylem
Tek bir dosya olarak yayımlarken derlemelerin dosya konumuna bağımlılıklardan kaçının.
Etkilenen API’ler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin