Vraag Geïnstalleerde .Net 4.5, maar kan de klasse ZipFile niet gebruiken in Visual C #


Ik ben een beetje een newbie voor Visual Studio-programmering.

Ik heb onlangs .Net 4.0 naar 4.5 geüpgraded om de klasse ZipFile onder System.IO.Compression te gebruiken, maar nadat de installatie is voltooid, kan Visual Studio (ik gebruik 2012) ZipFile nog steeds niet herkennen als een klassennaam.

Ik heb ervoor gezorgd dat .Net 4.5 wordt weergegeven in de lijst met configuratieschermen en mijn C # -oplossing stelt .Net Framework 4 in als het doelframework.

Kan iemand me helpen dit uit te zoeken?


26
2018-01-08 15:39


oorsprong


antwoorden:


Zien ZipFile Class op MSDN. Het laat zien dat de vereiste raamwerkversie 4.5 is. Zodra de frameversie is hersteld, hebt u een verwijzing naar de System.IO.Compression.FileSystem.dll assemblage en een gebruik toegevoegd System.IO.Compression richtlijn voor uw klas.


57
2018-01-08 15:42



U moet ook verwijzen naar de assembly System.IO.Compression.FileSystem.dll.


12
2018-01-08 15:42



Om de vorige antwoorden verder te verduidelijken, kunt u hier de verwijzingen handmatig toevoegen:

<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>

De bestanden zijn te vinden in C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ en de submappen bevatten ook de nodige informatie over versie, cultuur en PublicKeyToken.


7
2017-11-20 15:26



U moet het doelraamwerk van het huidige project wijzigen van .Net 4 naar .Net 4.5.


5
2018-01-08 15:41



Nieuwe functies in .NET 4.5

Verbeteringen in Zip-compressie om de grootte van een gecomprimeerd bestand te verkleinen. Zie de naamruimte System.IO.Compression.

Toevoegen System.IO.Compression assemblage als referentie naar uw project. U   wil misschien ook verwijzen System.IO.Compression.FileSystem bijeenkomst   voor toegang tot drie uitbreidingsmethoden (uit de klasse ZipFileExtensions)   voor de ZipArchive-klasse: CreateEntryFromFile, CreateEntryFromFile,   en ExtractToDirectory. Met deze uitbreidingsmethoden kunt u comprimeren   en decomprimeer de inhoud van het item naar een bestand.

Monster

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

Referenties:
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


1
2018-06-13 08:03



Gebruik voor Windows Phone 8.1 NuGet om het Microsoft Compression-pakket aan uw project toe te voegen en ernaar te verwijzen.

Als u een ouder WP8-project had, hebt u mogelijk een ander pakket gebruikt dat conflicten zou veroorzaken met de System.IO.Compression dll die deel uitmaakt van .NET 4.5 bij WP8.1. Daar moet je vanaf komen en Microsoft Compression gebruiken dat harmonieus samenwerkt met .NET 4.5. Dat is hoe ik hier ben gekomen!


1
2017-11-19 09:19



In mijn geval moest ik het doen verwijder handmatig alle dll-verwijzingen die zijn gestart met System.IO.Compression en voeg dan één voor één de benodigde toe (System.IO.Compression.FileSystem, enz.), hoewel ik maar één instructie heb geschreven

using System.IO.Compression;

Ik hoop dat dit iemand helpt


1
2018-03-24 15:58