当前位置:  开发笔记 > 开发工具 > 正文

如何停止Visual Studio调试器在作业对象中启动我的进程?

如何解决《如何停止VisualStudio调试器在作业对象中启动我的进程?》经验,为你挑选了1个好方法。

当我从Visual Studio启动我的进程时,它总是在作业对象中创建.我想知道如何关闭此行为.有任何想法吗?

我希望它是在要调试的作业对象中创建的.我想将我的程序放在不同的作业对象中.

这不是托管过程.我在谈论一个工作对象.这是一个非托管的C++应用程序.



1> 小智..:

发生这种情况时,devenv.exe或者VSLauncher.exe在兼容模式下运行.该程序兼容性助手(PCA)附加一个作业对象到Visual Studio的过程,每一个孩子进程继承它.检查作业名称(由Process Explorer报告)是否以PCA开头.如果是这样,可以按照链接中的描述禁用PCA.

您可以使用Run- > gpedit.msc- > Administrative Templates\Windows Components\Application Compatibility- > Turn off Program Compatibility Assistant- > 全局禁用PCA Enable.

您可以通过添加注册表项来禁用特定可执行文件的PCA.对于Windows 7,相应的注册表项是HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant.在注册表中,右键单击该键,选择New- > Multi-String Value,为其命名ExecutablesToExclude.将该值设置为的完整路径denenv.exeVSLauncher.exe,在不同的线条和不带引号.对我来说,这些是:

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

在Windows 7上,一个相关的问题是,您在Visual Studio中构建并从资源管理器(不是Visual Studio或命令行)运行的可执行文件可以在兼容模式下运行,并再次获取包裹它们的作业对象.为了防止这种情况,您的可执行文件需要一个使用新的Application Manifest Compability部分声明与Windows 7兼容的清单.该链接提供了Windows 7兼容清单的示例.Visual Studio 2010提供的默认清单不包括此兼容性部分.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有