Estoy trabajando en una aplicación que instala un gancho de teclado de sistema completo . No quiero instalar este enlace cuando estoy ejecutando una depuración compilación desde el interior del estudio visual (o de lo contrario colgaría el estudio y, finalmente, el sistema), y puedo evitar esto comprobando si el símbolo DEBUG está definido .Compruebe si la aplicación se inició desde Visual Studio
Sin embargo, cuando puedo depurar la versión liberación de la aplicación, no es una manera de detectar que se ha iniciado desde el interior Visual Studio para evitar el mismo problema? Es muy molesto tener que reiniciar el estudio/la computadora, solo porque he estado trabajando en la versión de lanzamiento y quiero corregir algunos errores usando el depurador que tiene olvidado para volver a la compilación de depuración.
Actualmente utilizo algo como esto para comprobar si este escenario:
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
diría que era el "camino de la fuerza bruta", que funciona en mi entorno, pero me gustaría saber si hay otra (mejor) forma de detectar este escenario.
Nota: Tengo las siguientes cadenas cuando se trata de esta técnica vstest.executionengine.x86.exe WebDev.WebServer20.exe lanzamiento de prueba de Visual Studio y por medio de código que se ejecuta bajo IIS Express. Entonces, cualquiera que lea esto puede necesitar ajustar el código en consecuencia. –