在“System.IO.Compression”命名空间中找不到`ZipArchive`

时间:2015-11-19 11:09:41

标签: c# reference webforms .net-4.5

我的问题与I didn't find "ZipFile" class in the "System.IO.Compression" namespace

有关

enter image description here

但我已经为我的4.5.1 webforms项目引用了DLL:

enter image description here

我的项目属性给了我:Target framework: .Net Framework 4.5.1. 和web.config:

<compilation debug="true" targetFramework="4.5" />

我错过了什么?

解决方案是手动引用web.config中的程序集但为什么呢?为什么添加引用对话框中的复选框不足?

<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>

https://stackoverflow.com/a/20099950/169714

3 个答案:

答案 0 :(得分:10)

我遇到同样的问题,因为引用中没有名称空间,请执行以下步骤。

在我的情况下没有参考

When References not installed

安装参考文献

enter image description here解决方案

1)从nuget这里安装system.Io.compression

System.IO.Compression

2)从nuget安装system.Install-Package 40-System.IO.Compression.FileSystem。

System.IO.Compression.FileSystem

答案 1 :(得分:10)

您可以直接更新项目文件中的引用(卸载项目并编辑此项或使用记事本打开.csproj文件并编辑)

之前编辑必须与:

相同
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />

后编辑:

<Reference Include="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
<Reference Include="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

在Visual Studio中再次加载项目并重建它。我希望它可以帮到你。

答案 2 :(得分:0)

using (var zip = new ZipArchive(System.IO.File.OpenRead(zipFileName))) { ... }