Определить конфигурацию решений (Visual Studio) - PullRequest
1 голос
/ 26 июня 2009

Есть ли способ, в коде, определить, в какой «Конфигурации решений» вы работаете? Например, «Отладка» или «Выпуск?»

У меня есть сервис, который мне нравится тестировать в IDE в Debug, прямо сейчас у меня есть bool, который я установил, который либо запускает «сервис», если он установлен в true (который затем использует метод OnStart для запуска моего «main»). method), если установлено значение false, я просто запускаю метод 'main'. Это прекрасно работает, но я часто забываю сбросить bool после тестирования, а затем, когда я иду, чтобы установить службу, происходит сбой, и мне приходится возвращаться, сбрасывать bool, перекомпилировать и т. Д.

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

Edit: Обдумывая это, я думаю, что мне действительно нужно в итоге определить, играю ли я в приложение в ide, а не в конфигурации soulutions. Это позволило бы мне скомпилировать либо в отладочной, либо в другой конфигурации.

Кажется, самое простое решение - проверить 'System.Diagnostics.Debugger.IsAttached'

Ответы [ 3 ]

14 голосов
/ 26 июня 2009

Вы не можете напрямую смотреть на конфигурацию решения, но вы можете использовать несколько подсказок, чтобы «угадать», в какой версии вы находитесь. Например, макрос препроцессора DEBUG будет определен только в конфигурации решения Debug для C #.

bool InDebugConfiguration() {
#if DEBUG
  return true;
#else
  return false;
#endif 
}
2 голосов
/ 26 июня 2009

Чтобы определить, выполняете ли вы в режиме отладки в IDE, посмотрите класс Debugger, в частности свойство IsAttached ...

0 голосов
/ 26 июня 2009

Вдобавок ко мне, вы также можете добавить событие после сборки для копирования в файл конфигурации:

if $(ConfigurationName)==Debug goto DEBUG_POSTBUILD
goto RELEASE_POSTBUILD


REM -----------DEBUG-----------    
:DEBUG_POSTBUILD
echo POSTBUILD-Debug Config Copy
copy "$(ProjectDir)\config_debug.cfg" "$(TargetDir)\config.cfg" /y
if errorlevel 1 goto FAILED

... затем получите доступ к файлу конфигурации во время выполнения. Это не связано с самой сборкой кода.

...