2016-05-05 3 views
0

Я хочу создать отдельный файл exe, который будет извлекать папку с большим количеством материала внутри.Как создать самораскрывающийся exe C# .net 4.0

Я хочу это ех работать на компьютерах с .net 4.0

Я пытался распаковать встроенный почтовый архив с папкой, но это не так просто с .net 4.0

+0

Если вы, говоря «не просто с .net 4.0», ссылаетесь на то, что вы не можете использовать класс «ZipFile», мне есть что сказать вам: класс 'ZipFile' действительно полезен. NET 4.0! Вам просто нужно импортировать файл 'System.IO.Compression.FileSystem.dll', который находится где-то в'% SystemRoot% \ Microsoft.NET \ assembly \ GAC_MSIL'. Попробуйте найти его там, и когда его найдете, просто импортируйте его в качестве ссылки на ваш проект, и он будет работать! –

+0

@Visual Vincent. Основная ссылка «System.IO.Compression.FileSystem» не может быть решена, поскольку она имеет косвенную зависимость от сборки системы «System.IO.Compression, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 ", который не может быть разрешен в целевой среде. ».NETFramework, Version = v4.0" . Чтобы устранить эту проблему, удалите ссылку «System.IO.Compression.FileSystem» или перенастройте приложение в версию фреймворка, содержащую «System.IO.Compression, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089». – PolyProgrammist

+0

Это работает для меня? Я импортировал его из '% SystemRoot% \ Microsoft.NET \ assembly \ GAC_MSIL \ System.IO.Compression.FileSystem \ v4.0_4.0.0.0b3a5c561934e089 \ System.IO.Compression.FileSystem.dll'. –

ответ

0

Вы должны быть в состоянии сделайте это, добавив файл .zip в ваш проект установщика C# и установив его действие сборки на «Встроенный ресурс». Затем ваша программа установки C# извлечет этот файл из себя, используя Assembly.GetManifestResourceStream, записывая содержимое потока на диск.

+0

Но как я могу разархивировать его в .net 4.0? – PolyProgrammist

+0

Я вижу из комментариев по вашему вопросу, что проблема, с которой вы столкнулись, - это найти встроенную библиотеку zip/unzip. Я мало что знаю об этом, но вы, безусловно, можете использовать стороннюю библиотеку, например [SharpZipLib] (https://icsharpcode.github.io/SharpZipLib/) или программу с командной строкой, например [7-Zip] (http://www.7-zip.org/). (Существует также оболочка .NET для 7-Zip, которая позволяет вам ссылаться на основную DLL, но я ее не пробовал.) – adv12

+0

Я предпочитаю встроенный, но я принимаю сторонние. Тем не менее, я не уверен, что могу создать ситуацию, когда один exe может использовать dll как-то – PolyProgrammist

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

  • Нет связанных вопросов^_^