J'ai un programme installé dans ProgramData. J'utilise UAB 2.1 pour mettre à jour l'application mais elle a échoué parce que l'accès au chemin est refusé (OK avec les fichiers texte, donc je pense qu'il y a un problème avec l'UAC). Comment puis-je obtenir des droits d'écrasement dans ProgramData/MyAppFolder ou afficher une boîte de dialogue pour remarquer que l'utilisateur donne des droits d'écrasement pour le programme de mise à jour?UnauthorizedAccessException avec System.IO.File.InternalCopy dans ProgramData sous Windows 7
Merci beaucoup à l'avance.
Mise à jour
J'ai lu un article à http://blogs.msdn.com/b/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead-of-program-files.aspx. Il a dit que Vous voudrez créer votre répertoire et définir les ACL dont vous avez besoin au moment de l'installation. Dois-je changer le dossier d'installation en LocalAppData ou essayer de définir les ACL au moment de l'installation selon l'article.
Merci d'avoir répondu. J'ai compris votre solution, mais encore quelque chose doit considérer: 1> Je pense que l'exe séparé avec le dialogue de consentement de l'UAC n'a pas une bonne expérience utilisateur. Comment pourrais-je modifier le dialogue de consentement de l'UAC pour montrer une explication claire. 2> Dans le cas où mes utilisateurs utilisent uniquement le programme avec un compte standard. Dois-je changer le dossier d'installation en LocalAppData ou essayer de définir les ACL au moment de l'installation. Merci. –
Vous ne pouvez pas modifier la boîte de dialogue UAC. Vous pouvez cependant leur en donner un à l'avance. Donc, quand une mise à jour est disponible, donnez-leur une boîte de message "Une mise à jour est disponible.Pour l'installer cliquez sur le bouton Mettre à jour.Vous devrez consentir à la boîte de dialogue [le décrire d'une manière qu'ils comprendront]." La signature de votre application peut rendre le dialogue UAC plus agréable pour eux car il ne dira pas Unknown Publisher et aura la barre orange effrayante en haut. L'installation de votre application en dehors de ProgramFiles rend vos utilisateurs vulnérables aux logiciels malveillants. Je ne le recommanderais pas. –
Merci beaucoup. –