Meine Anwendung ist eine Universal Window Platform-Anwendung. Ich versuche, eine Runtime-Komponente zu implementieren, um einen gezippten Ordner zu dekomprimieren. Eine meiner Anforderungen ist, dass Pfade, die länger als 260 Zeichen sind, bearbeitet werden können.'Konnte Datei oder Assembly System.IO.Compression' auf UWP nicht laden
public static IAsyncActionWithProgress <string> Unzip(string zipPath, string destination) {
return AsyncInfo.Run <string> (async(_, progress) => {
var zipFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(zipPath));
try {
Stream stream = await zipFile.OpenStreamForReadAsync();
ZipArchive archive = new ZipArchive(stream);
archive.ExtractToDirectory(destination);
} catch (Exception e) {
Debug.WriteLine(e.Message);
}
});
}
Ich habe versucht, meine Methode immer folgende Ausnahmemeldung auszuführen:
System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.Compression, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
at Zip.Zip.<>c__DisplayClass0_0.<<Unzip>b__0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Zip.Zip.<>c__DisplayClass0_0.<Unzip>b__0(CancellationToken _, IProgress`1 progress)
at System.Thread (~4340)
I System.IO.Compression mit NuGet hinzuzufügen versucht, aber ich immer noch die gleichen Fehler. Die Zip-Datei und der Zielordner existieren.
Ich habe versucht, mein Projekt auf Visual Studio 2015 statt Visual Studio 2017 zu debuggen und herausgefunden, dass ich System.IO.Compression auf diese Weise verwenden kann, aber es gibt eine Beschränkung für die Länge der Pfade.