J'ai créé un .NET, C#, WinForms application sur Win 7 RTM x64, qui disons que j'ai appelé DataInstaller.
Lorsque j'exécute ce programme à l'extérieur du débogueur (juste un formulaire vide avec aucune fonctionnalité à l'heure actuelle), il fonctionne très bien jusqu'à ce que je ferme le formulaire. Ensuite, je reçois un message de l'Assistant Compatibilité des programmes qui dit:
Ce programme ne pourrait pas installé correctement
J'ai ensuite obtenir la possibilité de les réinstaller en utilisant les paramètres recommandés ou de dire que l'installation a fonctionné comme prévu.
Si j'ai le nom de l'app 'DataThingy" ce n'est pas un problème, je suppose que c'est lié à la façon dont les programmes appelés *le programme d'Installation de gain d'un contrôle de compte d'utilisateur icône en forme de bouclier.
Je suppose qu'il y aura quelque chose de simple que je peux mettre dans le manifeste de l'application pour éviter cela?
Je ne suis pas sûr si cela se produit sur Vista car je n'ai pas accès actuellement.
Changer le nom n'est pas une option et la désactivation de l'UAC n'est pas une option, de sorte s'il vous plaît ne le conseille pas!
Edit:
OMG.
Il semble que si les conditions suivantes sont remplies, l'UAC bâtons sa rame en:
Exe le nom contient le mot de l'Installateur
AssemblyInfo.cs
AssemblyTitle contains the word 'Installer'
e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
e.g. [assembly: AssemblyProduct("Data Installation Utility")]
"Programme d'installation" peut aussi être "Setup".
Il est incroyable, vraiment. Évidemment, l'un des anciens programmeurs VB6 a été relocalisé dans le contrôle de compte d'utilisateur équipe, à Redmond.
J'ai encore besoin d'une solution de contournement, je ne suis pas prêt à accepter que ma demande ne peut pas être appelé un installateur car il ne touche pas la base de registre ou mettre les fichiers dans le dossier Program Files.
Je suppose que le contrôle de compte d'utilisateur serait de mettre la machine sur le total de verrouillage si j'ai essayé d'exécuter mon application appelée IAmAVirus.exe. (En fait, je n'ose pas essayer car je ne suis pas entièrement convaincu que je vais être ridicule)