Ссылка на проект, которая имеет несколько DLL - PullRequest
0 голосов
/ 31 мая 2019

У меня есть один запрос ...

У меня есть один проект библиотеки классов, в котором есть механизм регистрации исключений.Для регистрации исключений в БД и файле я использую NLog.

Я хотел реализовать этот проект библиотеки классов исключений таким образом, чтобы в будущем я мог использовать его файл DLL для любого проекта.

Проблема заключается в том, что когда я обращаюсь к этой библиотеке DLL,Другой проект, который ищет NLog dll тоже.Следовательно, появляется ошибка типа

[Невозможно загрузить файл или сборку 'NLog, версия = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 5120e14c03d0593c' или одну из ее зависимостей.Система не может найти указанный файл. ']

Но когда я добавляю dll в мой текущий вызывающий проект, тогда все начинает работать, значит, ясно, что он ищет и библиотеку NLOG DLL.

Но будет очень жалко, если я собираюсь добавить обе DLL (Nlog, ClassLibrary DLL в вызывающий проект).

Пожалуйста, выскажите свое мнение по этому вопросу.

Пожалуйста, найдите прикрепленный снимок экрана моего решения.

enter image description here

И исключение таково:

enter image description here

1 Ответ

1 голос
/ 02 июня 2019

Только для библиотеки классов вам нужно ссылаться на NLog, когда единственным проектом записываются сообщения журнала.

Я сделал пример, который показывает, что он работает:

https://github.com/304NotModified/NLog-Demo-cases/tree/master/ConsoleWithClassLib

edit:

добавил 2-ую демонстрацию, в этом случае NLogнастраивается библиотекой классов.В этом случае важно настроить NLog перед регистрацией;)

соответствующая часть в библиотеке:

// setup config
var configuration = new LoggingConfiguration();
configuration.AddRuleForAllLevels(new ConsoleTarget());
LogManager.Configuration = configuration;

// log
Logger logger = LogManager.GetCurrentClassLogger();
logger.Info("Init class1");

Полная демонстрация: https://github.com/304NotModified/NLog-Demo-cases/tree/master/ConsoleWithClassLib2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...