Comment exécuter l'application en tant qu'administrateur dans le débogage avec Visual Studio?

90

J'ai une application ac # où je dois avoir un accès en lecture / écriture à la racine du lecteur C. Je réalise que je peux compiler le code et exécuter l'exécutable en tant qu'administrateur et cela fonctionne. Mais je dois le déboguer et je ne sais pas comment démarrer l'application dans Visual Studio.

J'ai essayé d'ajouter:

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

à mon manifeste mais j'obtiens toujours une erreur d'accès refusé.

Voici la ligne de code qui échoue:

MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\somemapnamefile.data", System.IO.FileMode.OpenOrCreate, "somemapname", 1000);

Pour l'instant, j'ai un travail mais j'aimerais savoir pour l'avenir.

carny666
la source
3
Si vous exécutez VS en tant qu'administrateur, tout ce que vous déboguez sera également exécuté en tant qu'administrateur.
JMK
Je recommanderais le correctif suivant, sinon vous rencontrez des problèmes pour exécuter des solutions épinglées
JonnyRaa
Dans mon cas, j'ai dû aller dans Compatibilité et sélectionner Exécuter dans Windows XP (Service Pack 3). L'exécution de l'EDI en tant qu'administrateur n'a pas aidé.
Wendy

Réponses:

126

Exécutez simplement Visual Studio en tant qu'administrateur. Tout programme que vous déboguez à partir de là sera également exécuté en tant qu'administrateur.

Sam je suis dit de réintégrer Monica
la source
13
Mieux encore, définissez le raccourci Visual Studio pour qu'il s'exécute en tant qu'administrateur à partir de sa page Propriétés
Panagiotis Kanavos
19
@PanagiotisKanavos Personnellement, j'aime éviter d'exécuter des tâches en tant qu'administrateur à moins d'avoir une raison spécifique de le faire
Sam I am dit Réintégrer Monica
1
Oui. Il existe quelques programmes qui nécessitent un administrateur. Et une fois, je le lance, VS demande de redémarrer le VS en mode administrateur. Je ne sais pas comment cela se passe. Je viens de définir le niveau = "requireAdministrator". Mais parfois, il ne redémarre pas automatiquement
Jayson Ragasa
@SamIam: et après le déploiement de l'application Web, quels types de paramètres sont nécessaires ...?
Ghanshyam Lakhani
1
Bien qu'elle soit acceptée, ce n'est pas la bonne solution. Vous n'exécutez pas de programmes, ni VS ni rien d'autre en tant qu'administrateur, sauf si cela est nécessaire. La question initiale concernait le programme écrit par l'OP, et non VS. La bonne réponse est de préciser que le programme en cours de développement nécessite des privilèges d'administrateur.
Gábor
65

VS doit être exécuté avec le droit d'administrateur. cependant, une manière plus élégante est que le niveau requiredExecutionLevel du manifeste doit être défini sur «requireAdministrator».

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

Lorsque vous ouvrez le projet et essayez de déboguer, le VS2012 vous avertit du droit d'administrateur et redémarre avec le droit d'administrateur. Et le fichier exe sera également marqué comme nécessitant le droit d'administrateur en premier lieu.Par conséquent, lors du déploiement, vous n'avez pas besoin de configurer l'exigence de droit d'administrateur dans les propriétés du fichier.

Supawat Pusavanno
la source
1
Assurez-vous également que sous l'onglet Sécurité de votre projet, "Activer ClickOnce ..." n'est pas coché, sinon vous recevrez un avertissement de sécurité lorsque vous essayez d'exécuter votre code requis par l'administrateur. (ce paramètre sera vérifié si vous avez déjà cliqué sur «Publier» sur votre application à un moment donné).
monty
1
Juste une note - s'il n'y a pas de manifeste, ajoutez simplement un. D'une manière ou d'une autre, je n'ai pas réalisé que c'était peut-être inexistant.
Mołot
12

Vous pouvez également définir cette option d'administrateur automatiquement:

entrez la description de l'image ici

Bura Chuhadar
la source
1
Je pense que vous voulez mettre en évidence l'entrée "Propriétés" dans le menu contextuel, mais tout le monde sait de quoi vous parlez.
Aaron Campbell
Un moyen plus simple est Compatibility > Run As Administrator.
AStopher du
1
C'est une mauvaise idée monumentale. Vous ne voulez vraiment pas que Visual Studio s'exécute en permanence en tant qu'administrateur.
Jammer
1
Cette capture d'écran est totalement inintelligible et n'a aucune explication d'accompagnement, que ce soit une bonne solution ou non.
MickeyfAgain_BeforeExitOfSO
7

Pour répondre à la question dans votre titre, vous pouvez simplement sélectionner Exécuter en tant qu'administrateur dans le menu contextuel lors du démarrage de VS.

Josh
la source
4

Maintenant, la réponse vérifiée ne fonctionnera pas.

Vous devriez trouver une option pour cela dans les propriétés du projet Linker -> Manifest File -> UAC Execution Level . Définissez ceci sur requireAdminstrator .

Cela entraînera le manifeste généré par défaut pour inclure le niveau d' exécution demandé dont vous avez besoin, de sorte que vos utilisateurs seront automatiquement invités à élever leurs privilèges s'ils ne sont pas déjà élevés.

JunJie Wang
la source
1

L' erreur «Cette tâche nécessite que l'application dispose d'autorisations élevées» se produit car l'utilisateur actuel ne dispose pas d'un privilège suffisant pour ouvrir Visual Studio.

Comme solution temporaire

Vous pouvez résoudre ce problème en cliquant avec le bouton droit sur Visual Studio et en sélectionnant Exécuter en tant qu'administrateur à chaque fois que vous avez l'intention de l'ouvrir

En tant que solution permanente ,

Vous pouvez vérifier le dépannage de compatibilité

  • Cliquez avec le bouton droit sur Visual Studio> sélectionnez Résoudre les problèmes de compatibilité.
  • Sélectionnez Dépanner le programme.
  • Vérifiez Le programme nécessite des autorisations supplémentaires.
  • Cliquez sur Tester le programme.
  • Attendez un moment le lancement du programme. Cliquez sur Suivant.
  • Sélectionnez Oui, enregistrez ces paramètres pour ce programme.

Pour les étapes détaillées avec les images, veuillez vérifier que Visual Studio nécessite que l'application dispose d'autorisations élevées.

Mohamed
la source