usuario cuentas control windows-7 uac compatibility

windows 7 - cuentas - ¿Razones para obtener el diálogo Asistente de compatibilidad de programas?



user account control windows 10 (1)

Este artículo de MSDN describe las muchas condiciones que pueden hacer que el Asistente de compatibilidad de programas se active. Revisaría el conjunto de escenarios que describe y veré si alguno de ellos se aplica a su programa. Veo las causas de los diálogos de PCA fuera de las condiciones que descartó (por ejemplo, intentar crear una nueva carpeta en %ProgramFiles% ).

¿Cuáles son las posibles razones para obtener el cuadro de diálogo Asistente de compatibilidad de programas después de que cierre mi aplicación?

Imagen del Asistente de compatibilidad de programas http://i.msdn.microsoft.com/dynimg/IC5958.gif

EDIT: Asistente de compatibilidad de programas: preguntas más frecuentes

Me doy cuenta de que esta pregunta ya se ha hecho en SO

Sin embargo, mi aplicación:

  1. Solo obtiene PCA después de que se cierre.
  2. No intenta hacer nada que requiera privilegios elevados (no lo creo)
  3. No obtiene PCA cuando se ejecuta desde IDE
  4. No es un instalador / programa de instalación
  5. No tiene "instalador" o "configuración" en el nombre del programa
  6. No lanza una excepción cuando se cierra, o sale con un código diferente a 0 (no lo creo)
  7. No obtiene PCA si agrego el nodo <compatibility> al manifiesto de aplicación

Nota # 6, con la siguiente aplicación.manifest, ya no obtengo el 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>

Así que la segunda parte parece arreglarlo, pero me preocupa que mi aplicación todavía esté haciendo algo que no conozco.

Para ser claros, estoy haciendo una pregunta de 2 partes:

  1. ¿Qué problemas pueden hacer que aparezca el diálogo de PCA?
  2. ¿Es absolutamente necesario el nodo <compatibility> para evitar el diálogo de PCA? ¿O podría estar haciendo algo mal?