visual studio hay depurar depurador como asociado adjuntar visual-studio visual-studio-2005 debugging

hay - ¿Cómo detener el depurador de Visual Studio iniciando mi proceso en un objeto de trabajo?



visual studio adjuntar (3)

No conozco ninguna forma de controlar este aspecto de los procesos creados para la depuración por VS.NET. Pero hay una solución alternativa, que se aplica a cualquier situación en la que VS.NET no pueda iniciar su proceso de la manera que desee:

Comience su proceso (posiblemente usando un contenedor EXE que se ejecuta como parte del evento posterior a la construcción), luego conéctelo al proceso recién iniciado usando Herramientas / Adjuntar al proceso. Si ingresas al depurador como parte de tu código de inicio, esto ni siquiera será necesario (y también puedes depurar problemas de inicio ...).

Cuando comienzo mi proceso desde Visual Studio, siempre se crea dentro de un objeto de trabajo. Me gustaría saber cómo desactivar este comportamiento. ¿Algunas ideas?

Espero que se cree en un objeto de trabajo para ser depurado. Quiero colocar mi programa en un objeto de trabajo diferente.

No es el proceso de alojamiento. Estoy hablando de un Objeto de trabajo . Esta es una aplicación C ++ no administrada.


No puedo reproducir lo que estás viendo. Creé una aplicación C ++ no administrada en VS 2005 y VS 2008 y no tengo problemas para asociar ese proceso a un nuevo objeto de trabajo al iniciar el proceso en VS.

¿Estás seguro de que el depurador está haciendo esto?


Esto sucede cuando devenv.exe o VSLauncher.exe ejecutan en modo de compatibilidad. El Asistente de compatibilidad de programas (PCA) adjunta un objeto de trabajo al proceso de Visual Studio y todos los procesos secundarios lo heredan. Compruebe si el nombre del trabajo (según lo informado por Process Explorer) comienza con PCA . Si es así, PCA se puede desactivar como se describe en el enlace.

Puede desactivar globalmente PCA utilizando Run -> gpedit.msc -> Administrative Templates/Windows Components/Application Compatibility -> Turn off Program Compatibility Assistant -> Enable .

Puede desactivar PCA para ejecutables específicos agregando una entrada de registro. Para Windows 7, la clave de registro adecuada es HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Compatibility Assistant . En regedit, haga clic con el botón derecho en esa clave, seleccione New -> Multi-String Value nombre ExecutablesToExclude . Establezca el valor en la ruta completa de denenv.exe y VSLauncher.exe , en líneas separadas y sin comillas. Para mí, estos fueron:

C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/devenv.exe C:/Program Files (x86)/Common Files/microsoft shared/MSEnv/VSLauncher.exe

Un problema relacionado, en Windows 7, es que los ejecutables que construyes en Visual Studio y ejecutas desde Explorer (no Visual Studio o la línea de comandos) pueden ejecutarse en modo compatibilidad, y de nuevo obtener objetos de trabajo envueltos alrededor de ellos. Para evitar esto, su ejecutable necesita un manifiesto que declara la compatibilidad con Windows 7, utilizando la nueva sección de Compasibilidad de Manifiesto de Aplicación . El enlace proporciona un ejemplo de un manifiesto compatible con Windows 7. El manifiesto predeterminado provisto por Visual Studio 2010 no incluye esta sección de Compatibilidad.