2016-05-05 8 views
0

Ich möchte einzelne exe-Datei, die einen Ordner mit viel Zeug in einem extrahieren wird.So erstellen Sie selbst extrahierte exe C# .net 4.0

Ich mag diese exe auf Computer mit .net 4.0

arbeitet ich mit dem Ordner eingebettet Zip-Archiv zu entpacken versuche, aber es ist nicht einfach, mit .net 4.0

+0

Wenn Sie sagen _ "es ist nicht einfach mit .net 4.0" _ beziehen sich darauf, dass Sie die 'ZipFile' Klasse nicht verwenden können, habe ich etwas Gutes zu sagen: Die' ZipFile' Klasse ist tatsächlich in. NET 4.0! Sie müssen nur die Datei 'System.IO.Compression.FileSystem.dll' importieren, die sich irgendwo in'% SystemRoot% \ Microsoft.NET \ assembly \ GAC_MSIL' befindet. Versuchen Sie es dort zu suchen, und wenn es gefunden wird, importieren Sie es als Referenz für Ihr Projekt und es wird funktionieren! –

+0

@Visual Vincent, Die primäre Referenz "System.IO.Compression.FileSystem" konnte nicht aufgelöst werden, da sie indirekt von der Framework-Assembly "System.IO.Compression, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 ", die im derzeit angestrebten Rahmen nicht gelöst werden konnte. ".NETFramework, Version = v4.0". Um dieses Problem zu beheben, entfernen Sie entweder den Verweis "System.IO.Compression.FileSystem" oder richten Sie Ihre Anwendung auf eine Framework-Version um, die "System.IO.Compression, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" enthält. – PolyProgrammist

+0

Es funktioniert für mich? Ich habe es aus '% SystemRoot% \ Microsoft.NET \ assembly \ GAC_MSIL \ System.IO.Compression.FileSystem \ v4.0_4.0.0.0__b77a5c561934e089 \ System.IO.Compression.FileSystem.dll' importiert. –

Antwort

0

sollten Sie in der Lage sein, Dazu fügen Sie Ihrem C# -Installationsprojekt eine ZIP-Datei hinzu und legen die Build-Aktion auf "Eingebettete Ressource" fest. Dann würde Ihr C# Installationsprogramm diese Datei von sich selbst extrahieren, indem Sie Assembly.GetManifestResourceStream verwenden und den Inhalt des Streams auf die Festplatte schreiben.

+0

Aber wie kann ich es entpacken in .net 4.0? – PolyProgrammist

+0

Ich sehe aus den Kommentaren zu Ihrer Frage, dass das Problem, das Sie haben, darin besteht, eine integrierte zip/unzip-Bibliothek zu finden. Ich weiß nicht viel darüber, aber Sie könnten sicherlich eine Bibliothek von Drittanbietern wie [SharpZipLib] (https://icsharpcode.github.io/SharpZipLib/) oder ein Befehlszeilenprogramm wie [7-Zip] (http://www.7-zip.org/). (Es gibt auch einen .NET-Wrapper für 7-Zip, mit dem Sie auf die Haupt-DLL verlinken können, aber ich habe es nicht versucht.) – adv12

+0

Ich bevorzuge integrierte, aber ich akzeptiere Drittanbieter. Allerdings bin ich nicht sicher, dass ich die Situation schaffen kann, dass eine einzelne exe dll irgendwie verwenden könnte – PolyProgrammist

Verwandte Themen