2009-11-25 5 views
1

J'essaie de créer une application d'automatisation en édition express C# 2005 sous Windows Vista. Le problème est, Chaque fois que j'essaie d'exécuter cette application, soit à partir d'IDE ou directement exécutable compilé sous Vista, il demande des privilèges d'administrateur élevés, même exécutable sous XP normalement si!L'application de la console C# 2005 requiert toujours des privilèges élevés

Je suis incapable de comprendre si ce problème en raison de manifester ou quelque chose d'autre ...

Merci,

+0

Juste un sidenote aux réponses données par tout le monde. Windows XP n'a pas d'UAC, donc les utilisateurs ont généralement des privilèges d'administrateur, donc il n'y aurait pas de problème. C'est le plus gros problème que les gens ont avec UAC dans Vista est tout simplement un logiciel mal conçu (logiciel qui apparaît UAC quand il n'est pas/ne devrait pas être nécessaire) qui a bien fonctionné sous XP à cause de cela. –

Répondre

3

D'abord, je update to 2008 Express; 2005 Express n'est plus disponible au téléchargement, mais 2008 Express peut toujours cibler .NET 2.0, en plus de vous donner 3.0/3.5 bonté. Et c'est toujours gratuit. En fait, 2010 Express est juste au coin de la rue! En particulier, vous trouverez de plus en plus difficile de trouver des personnes capables de répondre aux problèmes de l'IDE, simplement parce que peu de personnes ont encore installé Express 2005. Ajouter un fichier manifeste d'application (via l'EDI) - il apparaîtra comme app.manifest; il devrait ajouter (par défaut):

<requestedExecutionLevel level="asInvoker" uiAccess="false" /> 

qui devrait (IIRC) aide - mais: où est l'application en cours d'exécution à partir, et b: Que faut-il faire? (essaie-t-il d'éditer le registre, etc.)

+0

Merci Marc pour la réponse mais j'ai essayé cette solution avant de poster ceci ici mais cela n'a pas résolu mon problème. :( – DexTer

3

En plus de la réponse de Marc: Si l'exécutable a le 'setup' ou 'install' comme partie de son nom, l'UAC demande des privilèges d'administrateur indépendamment d'un manifeste. Le seul travail autour de cela est de renommer le fichier .exe en quelque chose qui ne contient pas ces mots-clés.

Éditer: 'Update' est aussi un mot-clé. S'il vous plaît voir aussi ce Technet article sur UAC.

+2

Intéressant, ne le savais pas.Par curiosité cependant, avez-vous une source pour cette info? – RCIX

+0

Est décrit dans le technet: http://technet.microsoft.com/fr-fr/library/cc709628 (WS.10) .aspx La mise à jour est également un mot-clé. –

0

Si votre application tente de faire des choses nécessitant des privilèges élevés (par exemple, écrire dans le dossier Program Files ou dans certaines zones du registre), elle devra demander une élévation, sinon elle échouera. Sous XP il ne demandera pas d'élévation du tout; il va juste échouer s'il ne possède pas les permissions nécessaires (mais généralement les utilisateurs exécutent des droits d'administration sous XP, donc ce n'est pas souvent un problème)

Pour ajouter un "gotcha" à l'existant réponses: Si vous utilisez les propriétés du fichier (onglet Compatibilité) sur votre fichier .exe pour le forcer à "exécuter en tant qu'administrateur", il demandera toujours l'élévation quand il est exécuté. Inconsciemment, ceci est appliqué de manière permanente au pathname, donc même si vous supprimez le fichier .exe et en installez un nouveau, le paramètre "en tant qu'admin" s'appliquera toujours! Vous devez spécifiquement ouvrir les propriétés et désactiver cette propriété pour le supprimer à nouveau.

Questions connexes