我的应用程序中有以下代码块:
try
{
string extractPath = @"C:\Documents";
using (ZipArchive zip = ZipFile.Open(zipFP, ZipArchiveMode.Read))
foreach(ZipArchiveEntry entry in zip.Entries)
{
try
{
extractedPDF = System.IO.Path.Combine(extractPath, entry.FullName);
entry.ExtractToFile(extractedPDF, true);
}
catch (System.IO.IOException)
{
Console.WriteLine("File already exists... ");
Console.WriteLine("Error during extraction... ");
}
}
Console.WriteLine("PDF extracted from ZIP: '{0}'...", string.Concat(extractPath, zipFP));
PdfPanel.OpenFile(extractedPDF);
}catch(AccessViolationException ex)
{
Console.WriteLine("Can't display a zip in the PDF panel... " + ex.InnerException);
}
目前,我在using
& foreach
行突出显示ZipArchive
,ZipFile
,ZipArchiveMode
& ZipArchiveEntry
。
编译错误说:
类型或命名空间名称' ZipArchive'找不到(你错过了使用指令或汇编引用吗?
但是我在这个文件的顶部有using
System.IO.Compression
语句,我确信我已经添加了代码所需的所有引用和其他使用语句。我从一个完全正常运行的单独项目中复制了这段代码,并检查了我是否添加了该项目中所有缺少的using
语句和引用。
还有什么可能导致这个问题?为什么编译器没有认识到我是using
System.IO.Compression
包的事实?
答案 0 :(得分:1)
您需要添加对程序集的引用。在解决方案资源管理器中,在项目下右键单击引用 - >添加参考。在Framework Assemblies列表中查找System.IO.Compression。选中相应的复选框,然后按确定。