2016-04-06 21 views
3

Windows Server 2012 r2 çalıştıran bir makinede geliştirmekteyim, varsayılan olarak 4.5 çerçeve sürümünü kullanmalıyım, ancak ZipArchive sınıfını kullanmaya çalıştığımda, bu yalnızca 4.5'den kullanılabilir. Bu basit bir kod çalıştırırsanız net çerçeve:ZipArchive sınıfını kullanamazsınız

Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34248 
: Ben çerçevesi hakkında bu var iz itibaren

CS0246: The type or namespace name 'ZipArchive' could not be found (are you missing a using directive or an assembly reference?) 

:

<%@ Page Language="C#" ResponseEncoding="utf-8" Trace="true" %> 
<%@ Import Namespace="System.IO.Compression" %> 
<% 
    ... variables etc ... 

using (ZipArchive archive = ZipFile.OpenRead(zipPath)) 
{ 

} 
%> 

bu hatayı alıyorum

iis yöneticisinde framework clr sürümünü değiştirmeyi denedim, ancak yalnızca seçenekler 2.0 ve 4.0. Neyi yanlış yapıyorum? :/

cevap

1

ASPX sayfası yalnızca 4.5 olan 4.0 değil, 4.0 DLL'lere başvuruda bulunabilir ve yeni ZipFile ve ZipArchive öğeleri yalnızca 4.5 çerçevesinde ve 4.5'e özgüdür. Bunun arkasındaki detaylardan emin değiliz, ama bu nasıl davrandığını gösteriyor.

Bundan kaçınmak ve ASPX dosyaları bu sınıfları kullanmak için aşağıdaki web.config içinde system.web/compilation bölüm yapmak ekleyin:

<assemblies> 
    <add assembly="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
</assemblies> 
+0

İşe yaradı! Bu çözümü bilmek güzel – Fehu

İlgili konular