2013-11-02 4 views
1

Я пытаюсь скомпилировать этот простой код в моем проекте # WinForms C в VS 2010:System.IO.Compression.FileSystem сборки в VS 2010

using System.IO; 
using System.IO.Compression; 

string zipPath = @"c:\example\start.zip"; 
string extractPath = @"c:\example\extract"; 

using (ZipArchive archive = ZipFile.OpenRead(zipPath)) 
{ 
    foreach (ZipArchiveEntry entry in archive.Entries) 
    { 
     if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase)) 
     { 
      entry.ExtractToFile(Path.Combine(extractPath, entry.FullName)); 
     } 
    } 
} 

Описание для ZipFile Class говорит мне, что мне нужно добавить System.IO.Compression.FileSystem сборка. Извините за этот вопрос, но где он? Это как DLL? Это не входит в список ссылок .NET, и я точно знаю, что у меня установлена ​​.NET Framework v.4.5.

EDIT: Тот, кто хочет, чтобы включить простую поддержку Zip архив в проекте VS 2010, я обнаружил, что this project компилирует прямо в свой собственный проект. Очень чистый и простой.

+3

Вам нужно использовать VS 2012 для использования .NET 4.5. VS 2010 не поддерживает 4.5, и эта сборка доступна только в версии 4.5. – Tim

+1

@Tim: Хм. Поэтому Microsoft хочет, чтобы мы покупали VS 2012, чтобы использовать возможности архивирования Zip. Правильно ли я понял? – c00000fd

+0

@ Тим: Точно Тим. мы должны использовать .NET 4.5 для получения возможностей Zip. –

ответ

4

Возможно, установлен фреймворк .NET 4.5, но вам нужно иметь VS 2012, чтобы использовать его компоненты при разработке программ в версии 4.5.

VS 2010 поддерживает .NET 2.0, 3.0, 3.5 и 4.0, но не 4.5.

VS 2012 поддерживает все вышеперечисленное плюс .NET 4.5. ZipFile Class является новым в версии 4.5, его более ранних версий (по крайней мере, по ссылке MSDN).

Если вы не хотите покупать VS 2012, вы можете зарегистрироваться в Visual Studio Express 2012 Products, которые являются бесплатными.

+1

Wow. Это совершенно смешно. Я не думал об обновлении всей IDE только для того, чтобы включить распаковку функциональности в этот проект :) Любой другой способ распаковать файл без обновления до VS 2012? :) – c00000fd

+0

нет нет. это не имеет ничего общего с тем, что MS хочет, чтобы вы покупали новые продукты. вам нужно использовать сборку, которая была разработана для .NET 4.5 и более поздних версий ... единственной альтернативой является НЕ использовать ее и использовать что-то вроде ziplib или csharpzip или что-то в этом роде. это было некоторое время, так как я использовал его сам. –

+0

Быстрый Google показывает [DotNetZip] (http://archive.msdn.microsoft.com/DotNetZip), что может помочь.Есть, вероятно, и другие. – Tim

2

Вы можете использовать Visual Studio 2010 и поддерживать его, если ваша ОС поддерживает .NET 4.5.
Я знаю это, потому что я использую Visual Studio 2010 в Windows 8.

Щелкните правой кнопкой мыши по вашему решению, чтобы добавить ссылку (как и вы). Когда окно показывает диалоговое окно, выберите просмотр, а затем перейти к следующей папке:

C:\Program Files(x86)\Reference Assemblies\Microsoft\Framework\\.Net Framework\4.5

Вы найдете его там.

У меня была такая же проблема, как и раньше.

Надеюсь, это поможет.

+0

Это потрясающе. Спасибо!! –

+0

Спасибо! Пытался использовать пример Microsoft для архивирования файлов; ZipFile ссылался, но когда я перешел к ссылкам, он никогда не появлялся в поиске. Ссылка здесь существует. – Autonomic

Смежные вопросы