Я использую VB Express 2008. Я знаю, как сказать, был ли код построен в отладке больше или выпущен, но теперь я хотел бы знать, как определить, работает ли он в среде Visual Studio или нет (чтобы я мог добавьте отладку MsgBox() и не волнуйтесь о них, если я когда-либо случайно отправлю отладочную версию).Как узнать, работает ли (VB) код внутри Visual Studio?
ответ
Is System.Diagnostics.Debugger.IsAttached что вы ищете?
Что происходит, когда разработчик пытается отладить производственный код, запущенный на клиенте? Код изменяет пути и считает, что он запущен из VS IDE, используя ваше решение. Проверка прикрепленного отладчика ТОЛЬКО сообщает код, если подключен активный отладчик, а не если код находится в среде IDE во время разработки. – StarPilot
Есть ли у вас лучшее решение, @StarPilot? Поскольку это был принятый ответ, похоже, было решением, которое OP искал ... – Guy
Пока разработчик не отказался от использования vshost.exe, тогда код может проверить, включает ли его исполняемое имя vshost , Но можно отказаться от этого, поэтому он не гарантирует 100% точности. Проблема, как я уже отмечал выше, проверяет, что отладка - это гораздо больший набор возможностей, чем просто запуск в среде IDE. К сожалению, вне кода VSExtension нет 100% -ного способа определить, поддерживает ли IDE текущий код. – StarPilot
Если вы создаете Test и Prod, подумайте о том, чтобы использовать в своем коде директиву препроцессора.
#If DEBUG Then
MsgBox("Foo")
#End If
Это, конечно, упадет, если вы отправите двоичный код, построенный на основе отладки, в среду, отличную от dev. Я понимаю, что это атакует проблему под другим углом, откуда вы задали вопрос (IDE).
Попробуйте проверять IsAttached свойство System.Diagnostics.Debugger
извините, но @guy избил его на одну минуту (+1, правда) – Mawg
Если вы хотите, чтобы убедиться, что вы никогда не показывают отладочные сообщения для пользователей, вы можете использовать Debug.Write()
и Debug.WriteLine()
. Эти команды выведут текст, предоставленный в окно вывода отладки. Обратите внимание, что вы можете атаковать окно вывода отладки в программу, выполняющую производственный код на машине клиента, без установки среды разработки!
Тестирование прикрепленного отладчика не означает, что отладчик также находится внутри IDE. Во многих средах довольно часто прикладывать отладчики к производственному коду, запущенному в клиентской системе, для определения того, что происходит неправильно при установке и использовании конкретного клиента. Тестирование для отладчика, а затем предполагая, что вы находитесь в среде IDE, будет нарушать это использование отладчиков в производственной среде.
- 1. Как узнать, работает ли код локально из Visual Studio/Cassini
- 2. Как узнать, выполняется ли .NET-код разработчиком Visual Studio
- 3. Как Visual Studio работает через мой код?
- 4. Как выполнить код VB 6 из Visual Studio 2010, или мне нужно загрузить VB 6?
- 5. Как узнать, находится ли код внутри TransactionScope?
- 6. Listbox Refresh - Visual Studio VB
- 7. Visual Studio 2017 и код Visual Studio
- 8. Можно ли просматривать Visual Studio 2010 внутри Visual Studio?
- 9. Код Visual Studio, заменяющий Visual Studio
- 10. Как узнать, действительно ли этот код работает?
- 11. Visual Studio записывает код в form1.vb вместо form1.designer.vb
- 12. Код Visual Studio, отладка не работает
- 13. Код Visual Studio «files.exclude» не работает
- 14. NUnit не работает Код Visual Studio 2010
- 15. Код Visual Studio Code.autoSave onFocusChange не работает
- 16. Запустить код VB внутри PowerShell
- 17. Код сборки Visual Studio
- 18. Работает ли код Visual Studio с PowerShell в палитре команд?
- 19. Код Visual Studio Code.exclude не работает
- 20. код блоки работает проект xcode/visual studio
- 21. Код CodeBlocks не работает в Visual Studio
- 22. Как создать Ли с гиперссылкой внутри VB
- 23. Visual Studio Скомпилированный код
- 24. Действительно ли код Visual Studio действительно свободен?
- 25. Вызов DLL из Visual Studio VB 2015
- 26. Имеет ли код Visual Studio код с ключом привязки?
- 27. visual studio 2010 с C# как пространства имен в vb
- 28. Как узнать, установлен ли Visual Studio 2008 SP1?
- 29. Возможно ли запустить VB 6 в visual studio 2010?
- 30. Код Visual Studio автозаполнения
Почему бы вам не попробовать Debug.Assert? - http://msdn.microsoft.com/en-us/library/kssw4w7z.aspx –
потому что он «Проверяет условие, если условие ложно, отображает окно сообщения, которое показывает стек вызовов», и я не требуется стек вызовов. Проверка того, что работа в среде IDE достаточно проста в продуктах Borland, поэтому я надеялся, что это будет и в VS 2008 ... – Mawg