Каковы возможные причины появления диалогового окна Помощник по совместимости программ после закрытия моего приложения?
(источник: microsoft.com)
ОБНОВЛЕНИЕ: Помощник по совместимости программ: часто задаваемые вопросы
Я понимаю, что этот вопрос уже задавался на S.O.
- Помощник по совместимости программ считает мое приложение установщиком
- Для моего приложения появился помощник по совместимости программ для Windows 7. Почему?
- Почему я получаю сообщение от Помощника по совместимости программ?
- Как программно предотвратить появление "Помощника по совместимости программ" в Vista (и Windows 7)?
Тем не менее, мое приложение:
- PCA получает только после его закрытия
- Не пытается делать ничего, что требует повышенных привилегий (я не думаю)
- Не получает PCA при запуске из IDE
- Не является программой установки/установки
- В имени программы нет слова "установщик" или "настройка"
- Не выдает исключение при закрытии или выходе с кодом, отличным от 0 (я не думаю)
- Не получает PCA, если я добавляю узел
<compatibility>
в манифест приложения
Примечание № 6 со следующим app.manifest я больше не получаю PCA:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</asmv1:assembly>
Так что вторая часть, кажется, исправляет это, но я беспокоюсь, что мое приложение все еще делает что-то, о чем я не знаю.
Чтобы было ясно, я задаю вопрос из двух частей:
- Какие проблемы могут вызвать появление диалогового окна PCA?
- Является ли узел
<compatibility>
абсолютно необходимым для того, чтобы избежать диалога PCA? Или я все еще делаю что-то не так?