Это происходит, когда devenv.exe
или VSLauncher.exe
работают в режиме совместимости. Помощник по совместимости программ (PCA) присоединяет объект задания к процессу Visual Studio, и каждый дочерний процесс наследует его. Проверьте, начинается ли имя задания (как сообщает Process Explorer) с PCA . В этом случае PCA можно отключить, как описано в ссылке.
Вы можете глобально отключить PCA, используя Run
-> gpedit.msc
-> Administrative Templates\Windows Components\Application Compatibility
-> Turn off Program Compatibility Assistant
-> Enable
.
Вы можете отключить PCA для определенных исполняемых файлов, добавив запись в реестр. Для Windows 7 соответствующий раздел реестра - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant
. В regedit щелкните правой кнопкой мыши этот ключ, выберите New
-> Multi-String Value
, назовите его ExecutablesToExclude
. Установите значение полного пути denenv.exe
и VSLauncher.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 или командной строки), могут работать в режиме совместимости и снова оборачиваться объектами заданий. Чтобы предотвратить это, вашему исполняемому файлу нужен манифест, который объявляет совместимость с Windows 7, используя новый раздел совместимости манифеста приложения . Ссылка дает пример совместимого с Windows 7 манифеста. Манифест по умолчанию, предоставляемый Visual Studio 2010, не включает этот раздел совместимости.