Удалить зависимость DLL для приложения - PullRequest
4 голосов
/ 22 октября 2010

В моем приложении мне нужно сжать и распаковать некоторые файлы.Для этого я использовал DotNet Zip Library (Ionic.Zip.dll-- DotNet Zip Lib )

Все работает нормально, но когда я беру EXE своего файла и пытаюсь запустить его из разныхпапка не запускается.Я должен держать Ionic.Zip.dll в папке, где находится мое приложение.Есть ли выход?Я просто хочу EXE-файл без каких-либо строк .... Или есть ли другой вариант, кроме DotNet Zip Lib.

Ответы [ 4 ]

12 голосов
/ 22 октября 2010

Когда вы добавляете ссылку на другую сборку (например, стороннюю DLL) в ваш проект C #, компилятор не добавляет содержимое этой сборки в ваш EXE; он просто создает ссылку, которая говорит, что вашей программе нужно будет загрузить эту DLL при запуске. Распространение программы .NET в виде EXE-файла и файлов DLL, которые ему нужны, вполне нормально.

Но если вы предпочитаете, вы можете объединить их в один EXE-файл. Существует несколько различных инструментов, которые могут объединить несколько сборок .NET в одну. Посмотрите ILMerge или .NETZ .

2 голосов
/ 22 октября 2010

Посмотрите на эти чистые библиотеки C # без внешних зависимостей:

Он может быть включен в ваше приложение и скомпилирован непосредственно в ваш отдельный EXE-файл - никаких внешних ZIP-библиотек не требуется.

1 голос
/ 22 октября 2010

Вы можете использовать .net для этого, взгляните на Пространство имен упаковки или, если вы можете использовать формат gzip, вы также дали класс для этого.Используя это, вы удалите зависимость из вашего проекта.

0 голосов
/ 22 октября 2010

Если это проект с открытым исходным кодом, вы можете просто включить исходный код в свой проект без добавления ссылки на «dll».

...