Visual Studio-удаление ссылки в режиме выпуска

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

можно ли исключить ссылку на NLog.DLL, когда я переключаюсь в режим выпуска?

спасибо,

5 ответов


вы можете вручную отредактировать файл csproj и сделать что-то вроде этого:

<Reference Include="NLog" Condition="'$(Configuration)' == 'Debug'" />

Это только делает ссылку на эту сборку в Debug. Я бы не рекомендовал делать это часто, потому что это поведение не отражается в списке ссылок в Visual Studio при изменении конфигурации. Он работает при компиляции, хотя


единственный способ, который я знаю, - полностью удалить ссылку и вызвать сборку через отражение. Затем следует регистрировать только при загрузке сборки.


Я не могу придумать хороший способ сделать это. Если только вы не написали ссылку на заглушку для NLog.файл DLL. Поскольку вы используете ссылку в своем коде, я не вижу, как вы можете просто удалить ее в своем выпуске.

вероятно, слишком поздно сейчас, но в будущем вы можете написать класс для обертывания NLog.dll, а затем просто измените его в одном месте, чтобы он не входил в версию выпуска. Или иметь какой-нибудь флаг.


нет причин для удаления ссылки, если вы уверены, что код не будет использоваться из этой DLL. В этом случае вы можете просто удалить DLL.


зачем вы хотите это сделать?

Если вы хотите остановить ведение журнала, вы можете программно отключить ведение журнала. Хит производительности будет минимальным. (У меня был большой успех с NLog даже при регистрации перекрестного процесса.)

в противном случае, нужно обернуть его, как описано выше.

-Скотт