web-dev-qa-db-fra.com

Comment empêcher les messages "Ce programme n'a peut-être pas été installé correctement" sous Vista

J'ai un exécutable d'installation du produit qui copie certains fichiers sur le disque dur de l'utilisateur. Ce n’est pas un programme d’installation typique au sens habituel (cela n’ajoute rien aux dossiers Menu Démarrer ou Program Files). 

Chaque fois que le programme d'installation est exécuté sur Vista, après la fin du programme exe, Vista génère une boîte de dialogue de tâche:

  • Ce programme n'est peut-être pas installé correctement
  • Réinstallez en utilisant les paramètres recommandés
  • Ce programme a été installé correctement

Dois-je appeler une fonction à partir du fichier exe ou de l'entrée de registre pour indiquer au système d'exploitation que le programme est correctement installé (ou au moins pour supprimer ce message)?

Questions connexes:Message "Ce programme n'a peut-être pas été installé correctement" dans Windows 7 RC (pour les problèmes spécifiques à Windows 7)

48
Jason

Vous devez ajouter des informations dans la section AppCompat du registre.

Voir ce lien et cherchez "Comment désactiver un avertissement de Compatibility Program Assistant". 

De plus, il existe apparemment une méthode qui implique l’ajout d’un fichier manifeste à votre exécutable d’installation pour le marquer comme «compatible Vista».

7
Jon Grant

Incluez cette section dans le fichier manifeste du programme:

<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}"/>
    <!--The ID below indicates application support for Windows 8 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    <!--The ID below indicates application support for Windows 8.1 -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    <!--The ID below indicates application support for Windows 10 -->
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>

  </application>
</compatibility>

Il supprimera Assistant Compatibilité des programmes en indiquant que votre application est compatible avec Vista et Windows 7.

43
mik

Ce message apparaît notamment lorsque le système pense que vous exécutez un programme d'installation mais qu'il ne trouve pas d'entrée pour l'application dans la liste de programmes Ajout/Suppression.

Je ne sais pas si c'est le cas pour votre application, mais cela vaut la peine de vérifier.

3
Larry Osterman

La première chose à faire est d’ajouter un "manifeste Vista" avec createdExecutionLevel.

Si cela ne suffit pas (cliquer sur annuler lors de la désinstallation avec UAC désactivé, etc.), vous devez utiliser des éléments non documentés, tels que définir le champ de version de l'image dans l'en-tête PE sur 6.0.

3
Anders

Il semble y avoir plus de raisons à cela . Si vous avez renommé votre application, rappelez-vous également les noms dans les informations d'assemblage, ils doivent tous être identiques, sinon l'écran nag "Ce programme n'a peut-être pas été installé correctement" pourrait s'afficher: -P  enter image description here

Peut également être modifié directement dans le fichier AssemblyInfo.vb/.cs

0
MrCalvin