Ответ 1
См. ZipFile Class в MSDN. Он показывает, что требуемая версия фрейма - 4.5. После исправления версии фрейма вы добавили ссылку на сборку System.IO.Compression.FileSystem.dll
и добавили директиву System.IO.Compression
в свой класс.
Я как бы новичок в программировании Visual Studio.
Недавно я обновил .NET с 4.0 до 4.5, чтобы использовать класс ZipFile в System.IO.Compression, но после завершения установки Visual Studio (я использую 2012) по-прежнему не может распознавать ZipFile как имя класса.
Я убедился, что .Net 4.5 появляется в списке программ панели управления, и мое решение С# устанавливает .Net Framework 4 как целевую структуру.
Может кто-нибудь помочь мне понять это?
См. ZipFile Class в MSDN. Он показывает, что требуемая версия фрейма - 4.5. После исправления версии фрейма вы добавили ссылку на сборку System.IO.Compression.FileSystem.dll
и добавили директиву System.IO.Compression
в свой класс.
Вам также необходимо обратиться к сборке System.IO.Compression.FileSystem.dll.
Просто для дальнейшего разъяснения предыдущих ответов, здесь, как добавить ссылки вручную в Web.config:
<configuration>
<system.web>
<compilation targetFramework="4.5">
<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>
</compilation>
</system.web>
</configuration>
Или *.csproj:
<Project ...>
<ItemGroup>
<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" />
</ItemGroup>
</Project>
Файлы можно найти в C:\Windows\Microsoft.NET\assembly\GAC_MSIL \, а подпапки содержат необходимую информацию о версии, культуре и PublicKeyToken.
Вам нужно изменить целевую структуру текущего проекта с .Net 4 на .Net 4.5.
Новые возможности .NET 4.5
Улучшение сжатия Zip для уменьшения размера сжатого файла. См. Пространство имен System.IO.Compression.
Добавьте ссылку System.IO.Compression в качестве ссылки на ваш проект. Вы также может захотеть ссылаться на сборку System.IO.Compression.FileSystemдля доступа к трем методам расширения (из класса ZipFileExtensions) для класса ZipArchive: CreateEntryFromFile, CreateEntryFromFile, и ExtractToDirectory. Эти методы расширения позволяют сжимать и распакуйте содержимое записи в файл.
Пример
const string zipFilePath = @"C:\apps\Sample Pictures.zip";
using (FileStream zipFileToOpen = new FileStream(zipFilePath, FileMode.Open))
using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Read)) {
foreach (var zipArchiveEntry in archive.Entries)
Console.WriteLine(
"FullName of the Zip Archive Entry: {0}", zipArchiveEntry.FullName
);
}
Литература:
http://msdn.microsoft.com/en-us/library/ms171868.aspx
http://www.tugberkugurlu.com/archive/net-4-5-to-support-zip-file-manipulation-out-of-the-box
Для Windows Phone 8.1 используйте NuGet, чтобы добавить пакет Microsoft Compression в ваш проект и ссылаться на него.
Если у вас был старый проект WP8, возможно, вы использовали другой пакет, который создавал бы конфликты с dll System.IO.Compression, который является частью .NET 4.5, который поставляется с WP8.1. Вам нужно избавиться от этого и использовать Microsoft Compression, который работает гармонично с .NET 4.5. Вот как я сюда попал!
В моем случае мне нужно было вручную удалить все dll-ссылки, которые начинались с System.IO.Compression, а затем добавить одну за другой нужные (System.IO.Compression.FileSystem и т.д.), Хотя я только написал одно выражение об использовании
using System.IO.Compression;
Я надеюсь, что это помогает кому-то