Вопрос

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

Можно ли исключить ссылку на NLog.dll при переключении в режим выпуска?

Ваше здоровье,

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

-Скотт

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top