Я разрабатываю библиотеку для использования в других приложениях, и эта библиотека имеет множество команд для отладки и регистрации через NLog.
Можно ли исключить ссылку на NLog.dll при переключении в режим освобождения?
Приветствия,
Я разрабатываю библиотеку для использования в других приложениях, и эта библиотека имеет множество команд для отладки и регистрации через NLog.
Можно ли исключить ссылку на NLog.dll при переключении в режим освобождения?
Приветствия,
Вы можете вручную отредактировать файл csproj и сделать что-то вроде этого:
<Reference Include="NLog" Condition="'$(Configuration)' == 'Debug'" />
Это только делает ссылку на сборку в Debug. Я бы не рекомендовал делать это часто, потому что это поведение не отображается в списке ссылок в Visual Studio при изменении конфигурации. Он работает при компиляции, хотя
Единственный способ, которым я знаю, - полностью взять ссылку и вызвать сборку через отражение. Затем вы должны регистрироваться только в том случае, если сборка загружается.
Я не могу придумать хороший способ сделать это. Если, может быть, вы написали ссылку на заглушку для NLog.dll. Поскольку вы используете ссылку в своем коде, я не вижу, как вы могли бы просто удалить ее в своем выпуске.
Вероятно, слишком поздно, но в будущем вы можете написать класс для переноса NLog.dll, а затем просто изменить его в одном месте, чтобы он фактически не входил в версию выпуска. Или иметь какой-то флаг.
Нет причин для удаления ссылки, если вы уверены, что никакой код не будет использоваться из этой DLL. В этом случае вы можете просто удалить DLL.
Зачем вам это нужно?
Если вы хотите остановить ведение журнала, вы можете программно отключить ведение журнала. Снижение производительности будет минимальным. (У меня был большой успех с NLog даже при регистрации кросс-процесса.)
В противном случае вам нужно обернуть его, как описано выше.
-Скотт