C#- 'using' 语句似乎未被确认

C#- 'using' statement doesn't appear to be acknowledged

我的应用程序中有以下代码块:

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);
}

目前,我在 usingforeach 行上遇到编译错误,突出显示了 ZipArchiveZipFileZipArchiveModeZipArchiveEntry.

编译错误说:

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

但是我在这个文件的顶部有一个 System.IO.Compressionusing 语句,我确信我已经添加了代码所需的所有引用和其他使用语句...我从一个功能齐全的单独项目复制了这段代码,并检查了我是否添加了该项目中所有缺失的 using 语句和引用。

还有什么可能导致此问题?为什么编译器没有发现我是 using System.IO.Compression 包这一事实?

您需要添加对程序集的引用。在 Solution Explorer 中,在您的项目下右键单击 References -> Add Reference。在框架程序集列表中找到 System.IO.Compression。选中它的复选框,然后按确定。