Wie führe ich eine Anwendung als Administrator beim Debuggen mit Visual Studio aus?

90

Ich habe eine AC # -Anwendung, in der ich Lese- / Schreibzugriff auf das Stammverzeichnis des Laufwerks C haben muss. Mir ist klar, dass ich den Code kompilieren und die ausführbare Datei als Administrator ausführen kann, und es funktioniert. Aber ich muss es debuggen und bin mir nicht sicher, wie man die App in Visual Studio starten würde.

Ich habe versucht hinzuzufügen:

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

zu meinem Manifest, aber ich erhalte immer noch den Fehler "Zugriff verweigert".

Hier ist die Codezeile, die fehlschlägt:

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

Im Moment habe ich eine Arbeit, aber ich würde es gerne für die Zukunft wissen.

carny666
quelle
3
Wenn Sie VS als Administrator ausführen, wird alles, was Sie debuggen, auch als Administrator ausgeführt.
JMK
Ich würde das folgende
Update
In meinem Fall musste ich zu Kompatibilität gehen und Ausführen unter Windows XP (Service Pack 3) auswählen. Das Ausführen der IDE als Administrator hat nicht geholfen.
Wendy

Antworten:

125

Führen Sie einfach Visual Studio selbst als Administrator aus. Jedes Programm, das Sie von dort aus debuggen, wird auch als Administrator ausgeführt.

Sam, ich bin, sagt Reinstate Monica
quelle
13
Besser noch, stellen Sie die Visual Studio-Verknüpfung so ein, dass sie auf der Eigenschaftenseite als Administrator ausgeführt wird
Panagiotis Kanavos
19
@PanagiotisKanavos Ich persönlich möchte es vermeiden, Dinge als Administrator auszuführen, es sei denn, ich habe einen bestimmten Grund dafür
Sam, ich sage Reinstate Monica
1
Ja. Es gibt einige Programme, für die ein Administrator erforderlich ist. Und sobald ich es ausführe, fordert VS auf, den VS im Administratormodus neu zu starten. Ich bin mir nicht sicher, wie das passiert. Ich habe gerade die Ebene = "requireAdministrator" gesetzt. Aber manchmal wird es nicht automatisch neu
gestartet
@SamIam: und nach der Bereitstellung der Web-App, welche Einstellungen sind erforderlich ...?
Ghanshyam Lakhani
1
Trotz Akzeptanz ist dies nicht die richtige Lösung. Sie führen keine Programme aus, weder VS noch irgendetwas anderes als Administrator, es sei denn, dies ist erforderlich. Die ursprüngliche Frage betraf das Programm, das das OP schreibt, nicht VS. Die richtige Antwort besteht darin, anzugeben, dass für das in der Entwicklung befindliche Programm Administratorrechte erforderlich sind.
Gábor
65

VS muss mit Administratorrecht ausgeführt werden. Eine elegantere Methode ist jedoch das erforderliche ExecutionLevel im Manifest, das auf 'requireAdministrator' gesetzt werden sollte.

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

Wenn Sie das Projekt öffnen und versuchen zu debuggen, warnt der VS2012 vor dem Administratorrecht und startet sich neu, um das Administratorrecht zu aktivieren. Außerdem wird die exe-Datei an erster Stelle als Administrator-erforderlich markiert. Daher müssen Sie bei der Bereitstellung keine Administratorrechte in den Dateieigenschaften konfigurieren.

Supawat Pusavanno
quelle
1
Stellen Sie außerdem sicher, dass auf der Registerkarte "Sicherheit" Ihres Projekts "ClickOnce aktivieren ..." deaktiviert ist. Andernfalls wird eine Sicherheitswarnung angezeigt, wenn Sie versuchen, den vom Administrator erforderlichen Code auszuführen. (Diese Einstellung wird überprüft, wenn Sie in Ihrer App bereits auf "Veröffentlichen" geklickt haben.)
Montag,
1
Nur eine Notiz - wenn es kein Manifest gibt, fügen Sie einfach eines hinzu. Irgendwie habe ich nicht bemerkt, dass es möglicherweise nicht existiert.
Mołot
12

Sie können diese Administratoroption auch automatisch festlegen:

Geben Sie hier die Bildbeschreibung ein

Bura Chuhadar
quelle
1
Ich denke, Sie wollen den Eintrag "Eigenschaften" im Kontextmenü hervorheben, aber jeder weiß, wovon Sie sprechen.
Aaron Campbell
Ein einfacher Weg ist Compatibility > Run As Administrator.
AStopher
1
Dies ist eine monumental schlechte Idee. Sie möchten wirklich nicht, dass Visual Studio ständig als Administrator ausgeführt wird.
Jammer
1
Dieser Screenshot ist völlig unverständlich und enthält keine Erklärung, unabhängig davon, ob es sich um eine gute Lösung handelt oder nicht.
MickeyfAgain_BeforeExitOfSO
7

Um die Frage in Ihrem Titel zu beantworten, können Sie beim Starten von VS im Kontextmenü einfach Als Administrator ausführen auswählen.

Josh
quelle
4

Jetzt funktioniert die aktivierte Antwort nicht mehr.

Eine Option hierfür finden Sie in den Projekteigenschaften Linker -> Manifest File -> UAC Execution Level . Setzen Sie dies auf requireAdminstrator .

Dies führt dazu, dass das standardmäßig generierte Manifest die angeforderte Ausführungsstufe enthält , die Sie benötigen, sodass Ihre Benutzer automatisch aufgefordert werden, ihre Berechtigungen zu erhöhen, wenn sie nicht bereits erhöht sind.

JunJie Wang
quelle
1

Der Fehler "Für diese Aufgabe muss die Anwendung über erhöhte Berechtigungen verfügen" tritt auf, weil der aktuelle Benutzer nicht über ausreichende Berechtigungen zum Öffnen von Visual Studio verfügt.

Als vorübergehende Lösung

Sie können dieses Problem beheben, indem Sie mit der rechten Maustaste auf Visual Studio klicken und bei jedem beabsichtigten Öffnen die Option Als Administrator ausführen auswählen

Als dauerhafte Lösung ,

Sie können die Kompatibilitätsfehlerbehebung überprüfen

  • Klicken Sie mit der rechten Maustaste auf Visual Studio und wählen Sie Fehlerbehebungskompatibilität.
  • Wählen Sie Programm zur Fehlerbehebung.
  • Überprüfen Das Programm erfordert zusätzliche Berechtigungen.
  • Klicken Sie auf Programm testen.
  • Warten Sie einen Moment, bis das Programm gestartet wird. Weiter klicken.
  • Wählen Sie Ja, speichern Sie diese Einstellungen für dieses Programm.

Überprüfen Sie für die Detailschritte mit Bildern, ob für Visual Studio die Anwendung über erhöhte Berechtigungen verfügt

Mohamed
quelle