私はVisual Studioプログラミングの初心者です。
System.IO.Compressionの下でZipFileクラスを使用するために.Net 4.0を最近4.5にアップグレードしましたが、インストールの完了後、Visual Studio(2012を使用しています)はZipFileをクラス名として認識できません。
コントロールパネルのプログラムリストに.Net 4.5が表示され、C#ソリューションが.Net Framework 4をターゲットフレームワークとして設定していることを確認しました。
誰かが私がこれを理解するのを助けることができますか?
MSDNの ZipFile Class を参照してください。必要なフレームワークバージョンが4.5であることを示しています。フレームワークのバージョンが修正されたら、System.IO.Compression.FileSystem.dll
アセンブリへの参照を追加し、クラスにusing System.IO.Compression
ディレクティブを追加しました。
System.IO.Compression.FileSystem.dllアセンブリも参照する必要があります。
以前の回答をさらに明確にするために、参照を手動で追加する方法を次に示します。
<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>
ファイルはC:\ Windows\Microsoft.NET\Assembly\GAC_MSIL \にあり、サブフォルダーにはバージョン、カルチャ、およびPublicKeyTokenに関する必要な情報も含まれています。
現在のプロジェクトのターゲットフレームワークを.Net 4から.Net 4.5に変更する必要があります。
私の場合、System.IO.Compressionで始まるすべてのdll参照を手動で削除します必要なものを1つずつ追加します( System.IO.Compression.FileSystemなど)単一のusingステートメントのみを記述した場合でも
using System.IO.Compression;
これが誰かを助けることを願っています
Windows Phone 8.1の場合、NuGetを使用してMicrosoft Compressionパッケージをプロジェクトに追加し、参照します。
古いWP8プロジェクトがある場合、WP8.1に付属する.NET 4.5の一部であるSystem.IO.Compression dllとの競合を引き起こす別のパッケージを使用している可能性があります。それを取り除き、.NET 4.5と調和して動作するMicrosoft Compressionを使用する必要があります。それが私がここに来た方法です!
。NET 4.5の新機能
圧縮ファイルのサイズを縮小するためのzip圧縮の改善。 System.IO.Compression名前空間を参照してください。
プロジェクトへの参照としてSystem.IO.CompressionAssemblyを追加します。 System.IO.Compression.FileSystemアセンブリを参照して、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