0

В свой проект я добавил библиотеку DotNetZip. На моем компьютере скомпилированная программа работает, а когда я запускаю на другом компьютере, у меня возникает следующая ошибка:

Необработанное исключение: System.IO.FileNotFoundException:
Невозможно загрузить
файл или сборку "DotNetZip, Version=1.11.0.0, Culture=neutral, PublicKeyToken=6
583c7c814667745" или один из зависимых от них компонентов. Не удается найти указанный файл.
в DownloadFilesDesktop.Program.DownloadFile()
в DownloadFilesDesktop.Program.Main(String[] args)

Как я понял, это из-за того что не хватает библиотеки DotNetZip. Как это можно исправить? Можно ли полностью внедрить dll в exe?

Kromster
  • 13,809
  • 1
    а просто библиотеку закинуть к exe почему нельзя? – Alexandr Aug 11 '18 at 17:45
  • Вы предлагаете везде тащить библиотеку? – 0x6675636b Aug 11 '18 at 17:54
  • Да, потому что это внешняя библиотека по отношению к вашему проекту. Почти все продукты, имеющие внешние зависимости, поставляются со всеми библиотеками, которые они используют в процессе работы, если нет точной уверенности в том, что эти библиотеки будут на компьютере каждого потенциального пользователя. – aa_talanin Aug 11 '18 at 17:56
  • Нельзя как нибудь при выходе получить один exe, с внедренными библиотеками? – 0x6675636b Aug 11 '18 at 18:00
  • @guno7, вопрос: зачем? чтобы исполняемый файл был больше? – Alexandr Aug 11 '18 at 18:01
  • У меня исполняемый файл всего лишь 10 кб. Не страшно если добавится к нему 2-3 мб. – 0x6675636b Aug 11 '18 at 18:05
  • Возможно это вам поможет. – Rootware Aug 14 '18 at 01:45

1 Answers1

0

1) от самой библиотеки в проекте не избавиться никак. чтобы не таскать ее на разные ПК используйте nuget

2) про создание одного exe, в котором все dll https://habr.com/post/126089/

Alexandr
  • 454
  • 1
    На второй пункт можно и на SO найти информации море, особенно эта тема довольно интересная... – EvgeniyZ Aug 11 '18 at 18:16