Как выполнить строку условно в Visual Studio 2010? - PullRequest
2 голосов
/ 23 мая 2011

Я бы хотел, чтобы строка выполнялась при запуске в Visual Studio, но не при автономном запуске exe.

Спасибо.

Ответы [ 6 ]

8 голосов
/ 23 мая 2011

Вы имеете в виду, когда подключен отладчик?Если это так, вы можете сделать что-то вроде этого:

#if DEBUG
if (Debugger.IsAttached)
{
    //Your code here
}
#endif

Это будет выполняться только при подключенном отладчике, например, с помощью F5.Двойной щелчок по нему или использование Ctrl + F5 не приведет к попаданию оператора if.Он также обернут в условное выражение, поэтому при компиляции для освобождения кода его даже там нет.

5 голосов
/ 23 мая 2011

Вы можете использовать флаги сборки

#if DEBUG
      //do something in here
#endif

А потом, когда вы создадите релиз, этого не произойдет.

2 голосов
/ 23 мая 2011

Вы можете использовать ConditionalAttribute.Поместите код, который вы хотите выполнить условно в метод, и пометьте метод с [Conditional("DEBUG")].Метод и вызов к нему будут компилироваться, только если установлена ​​константа DEBUG.

1 голос
/ 23 мая 2011
0 голосов
/ 27 февраля 2012

Я думаю, этот код может помочь:

[Conditional("DEBUG")]
private void DEBUG_Execute() 
{ 
    if (Debugger.IsAttached)
    { 
        //todo:  execute line when running within VS
    } 
} 
0 голосов
/ 23 мая 2011

Вы можете проверить Application.startuppath

Если вы находитесь в режиме отладки, это означает, что папки bin / Debug присутствуют, в противном случае вы запускаете exe. Таким образом, вы можете сформулировать код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...