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
- Asistente de compatibilidad de programas cree que mi aplicación es un instalador
- El Asistente de compatibilidad de programas de Windows 7 apareció para mi aplicación. ¿Por qué?
- ¿Por qué recibo un mensaje del Asistente de compatibilidad del programa?
- ¿Cómo puedo evitar que aparezca el "Asistente de compatibilidad de programas" en Vista (y Windows 7)?
Sin embargo, mi aplicación:
- Solo obtiene PCA después de que se cierre.
- No intenta hacer nada que requiera privilegios elevados (no lo creo)
- No obtiene PCA cuando se ejecuta desde IDE
- No es un instalador / programa de instalación
- No tiene "instalador" o "configuración" en el nombre del programa
- No lanza una excepción cuando se cierra, o sale con un código diferente a 0 (no lo creo)
- 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:
- ¿Qué problemas pueden hacer que aparezca el diálogo de PCA?
- ¿Es absolutamente necesario el nodo
<compatibility>
para evitar el diálogo de PCA? ¿O podría estar haciendo algo mal?