Это простой вопрос. Я просто не могу запустить свою программу, если Newtonsoft.Json.dll не находится в папке с программой. Почему это? Я попытался добавить ссылку, добавил файл в корневой каталог проекта, добавлен в папку ресурсов, но ничего не получилось. Как запустить программу без файла Newtonsoft.Json.dll в папке программы? Я развиваюсь в приложении Windows Form.
Проблема решена благодаря расширению для внедрения ILMerge, действительно очень приятного пакета NuGet, который может объединять DLL сторонних разработчиков с одним исполняемым двоичным файлом. Для тех, кто хочет создать отдельное приложение, просто используйте ILMerge. Быстро, легко и чрезвычайно полезно. До встречи!
Обычно, если ваша программа использует DLL, вам понадобится эта DLL в папке приложения (или в пути пользователя или в GAC).
Обычный способ распространения нескольких файлов - с установщиком. Вы можете написать его, используя либо расширение WiX, либо расширение VS Installer Projects. Теперь все ваши выходные файлы устанавливаются в один ряд со всеми остальными добрами, которые поставляются с установленной программой. Я предпочитаю этот метод.
Однако есть альтернативы:
Загрузите источник и скопируйте источник в свой основной проект, затем он будет скомпилирован в вашу основную сборку (убедитесь, что вы проверяете, разрешено ли это лицензией).
Используйте ILMerge для объединения всех ваших сборок в один бинарный файл.
Если вы не хотите ссылаться на DLL в своей программе, вы можете установить ее на GAC на клиентской машине, но я не понимаю, какой контекст вы хотите
Если вам просто нужна сериализация JSON. Можете ли вы отключить свою функциональность с помощью класса JavascriptSerializer
который установлен с.Net?