2009-07-01 24 views
29

Tengo un instalador que funciona perfectamente en NT 5.x, Vista y Windows 7. Contiene el manifiesto adecuado para UAC en NT 6.x."Este programa podría no haberse instalado correctamente" mensaje en Windows 7 RC

Pero a partir de Windows 7 RC, cada vez que se cierra el programa de instalación, Windows produce un mensaje erróneo de "Este programa podría no haberse instalado correctamente", aunque el programa se instaló correctamente sin problemas. Nunca recibí estos mensajes espurios en Vista o en Windows 7 beta.

Envié un informe de error a Microsoft, pero no he recibido respuesta. Pensé que esto podría ser un problema en el Windows 7 RC, pero el problema todavía está allí en una instalación nueva de una de las compilaciones de RTM-escrow más recientes que se filtró. Microsoft no tiene documentación alguna sobre esto, ni siquiera una pista de lo que posiblemente podría desencadenarlo.

Aún más frustrante es que recibo este mensaje "Este programa podría no haberse instalado correctamente", incluso si cancelo la instalación en la primera pantalla de "seguro de querer realizar" antes de cualquier del código de instalación (creando un directorio temporal, extrayendo archivos, copiando, registro, etc.) siempre se ejecuta.

¿Alguien ha descubierto esto?

+0

Esto a continuación en ServerFault? –

+11

Pregunta del programador de Legit IMO. Si tuviera que crear un instalador, me gustaría que supere los criterios de instalación adecuados de Windows 7. – AlbertoPL

+2

Disculpe, debería haber aclarado: cuando dije, "Tengo un instalador", quise decir "Creé un instalador usando C", por lo que esto está en Desbordamiento de pila y no en Falla de servidor. –

Respuesta

1

¿Ha echado el Application Compatibility Toolkit en su instalador?

Nunca he tenido motivos para tratar con esto antes, pero parece ser exactamente para lo que está destinado.

+0

Sí, lo había intentado. Tamizado a través de cada entrada en el registro que se generó y no pudo encontrar ninguna información útil. –

29

Bueno, para responder a mi propia pregunta, he encontrado una manera de resolver este problema. Noté que el registro de cambios de WinRAR indicaba que el autoextractor de WinRAR también sufría el mismo problema y que se había resuelto. Así que descargué la última versión de WinRAR y la tiré en un desensamblador, junto con una versión anterior, en busca de nuevas llamadas a API, etc. Para resumir, todo lo que hizo fue agregar lo siguiente al manifiesto:

<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> 

algunas google de las cuerdas hacia arriba dirigida algún tipo de documentación: al parecer, esto es algo nuevo que se agregó a Windows 7 y que la documentación para el que fue creado el 20 de mayo no ayudó que Microsoft doesn' t Enlace a esto desde cualquiera de sus páginas de documentación de Win7, y mucho menos característica destacada. suspiro

Editar: Esto está documentado, mal, en MSDN here.

+1

Esto en realidad no resuelve el problema subyacente. Simplemente le está diciendo a Windows que no lo informe más. http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx; Windows 7: las aplicaciones con la sección Compatibilidad no obtendrán la mitigación de PCA. Es cierto que podría ser el camino a seguir en algunos casos. –

+0

Bueno, no está del todo claro que Windows informe esto correctamente. El instalador funciona como está diseñado con la PCA deshabilitada, y, como noté en mi otro comentario, hace mucho tiempo me metí en los registros de verificador de aplicaciones e incluso busqué varias llamadas a la API para asegurarme de que no fuera tan nuevo. Me había perdido Había desmantelado tanto el instalador que ni siquiera estaba haciendo nada, y Windows aún se quejaba. Así que estoy bastante seguro de que este es el curso de acción correcto. –

3

Me encontré con el mismo mensaje de error cuando ejecuté una nueva aplicación basada en Qt que construí. Los mismos síntomas: recibirían este mensaje 'útil' después de que el .exe se cerrara, sin importar lo que hiciera el programa.

Ahora tengo varios proyectos de aplicaciones qt, todos construidos exactamente de la misma manera. Y ninguno de los otros hace esto.

Finalmente descubrí que este error fue causado únicamente por el hecho de que había llamado a este proyecto particular 'instalador'. Terminé con un 'installer.exe' binario y sin duda tenía el nombre del proyecto incorporado en otro lugar (sin profundizar en el archivo de proyecto generado por qmake, no estoy seguro de qué).

El punto de interés es que puede encontrarse con este problema simplemente teniendo un proyecto llamado 'instalador' y nada más.

Cuestiones relacionadas