Когда я использую директивы препроцессора, такие как
1 #if(DEBUG)
2 // 1
3 // 2
4 #else
5 // 1
6 // 2
7 #endif
8
9 logger.Debug("Log exception, etc.");
, это приводит к тому, что во время выполнения номера строк в журнале (например, трассировка стека) неверны - в приведенном выше примере строка 9 станет 4, потому что остальныебудет проанализирован препроцессором.
Это делает анализ логов довольно сложным.
Есть ли способ решить эту проблему без создания методов с ConditionalAttribute
?
Мне известно о Debugger.IsAttached
(и я использую это решениесейчас), но я бы предпочел запускать код в зависимости от режима сборки (отладки / выпуска), а не от того, подключен ли отладчик.