Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET Framework 4.6.1'i hedefleyen uygulamalarla başlarken, ZipArchiveEntry.FullName özelliğinde kullanılan yol ayırıcısı, önceki .NET Framework sürümlerinde kullanılan ters eğik çizgiden ("\") eğik çizgiye ("/") değişti. System.IO.Compression.ZipArchiveEntry yöntemininkilerden biri çağrılarak ZipFile.CreateFromDirectory nesneleri oluşturulur.
Etki
Değişiklik, .NET uygulamasını .ZIP Dosya Biçimi Belirtimi'nin 4.4.17.1 bölümüne uygun olarak getirir ve windows olmayan sistemlerde .ZIP arşivlerinin sıkıştırmasını kaldırmaya olanak tanır.
MacOS gibi Windows dışı işletim sistemlerinde .NET Framework'ün önceki bir sürümünü hedefleyen bir uygulama tarafından oluşturulan zip dosyasının sıkıştırmasını açmak dizin yapısını koruyamıyor. Örneğin MacOS'ta, dizin yolu, ters eğik çizgi ("\") karakterleri ve dosya adını birleştirerek bir dizi dosya oluşturur. Sonuç olarak, sıkıştırılmış dosyaların dizin yapısı korunmaz.
Bu API'ler yol ayırıcı karakteri olarak eğik çizgi ("/") veya ters eğik çizgi ("\") sorunsuz bir şekilde işleyebildiğinden, bu değişikliğin Windows işletim sistemi üzerinde .NET Framework System.IO ad alanında API'ler tarafından sıkıştırılan .ZIP dosyalar üzerindeki etkisi en düşük düzeyde olmalıdır.
Azaltma
Bu davranış istenmeyen bir davranışsa, uygulama yapılandırma dosyanızın çalışma zamanı< bölümüne bir yapılandırma ayarı> ekleyerek bunu geri çevirebilirsiniz. Aşağıda hem <runtime> bölümü hem de vazgeçme anahtarı gösterilmektedir.
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=true" />
</runtime>
Buna ek olarak, .NET Framework'ün önceki sürümlerini hedefleyen ancak .NET Framework 4.6.1 ve sonraki sürümlerde çalışan uygulamalar, uygulama yapılandırma dosyasının <çalışma zamanı> bölümüne bir yapılandırma ayarı ekleyerek bu davranışı kabul edebilir. Aşağıda hem <runtime> bölümü hem de katılım onayı düğmesi gösterilmektedir.
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=false" />
</runtime>