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.
c#
visual-studio
carny666
quelle
quelle
Antworten:
Führen Sie einfach Visual Studio selbst als Administrator aus. Jedes Programm, das Sie von dort aus debuggen, wird auch als Administrator ausgeführt.
quelle
VS muss mit Administratorrecht ausgeführt werden. Eine elegantere Methode ist jedoch das erforderliche ExecutionLevel im Manifest, das auf 'requireAdministrator' gesetzt werden sollte.
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.
quelle
Sie können diese Administratoroption auch automatisch festlegen:
quelle
Compatibility > Run As Administrator
.Um die Frage in Ihrem Titel zu beantworten, können Sie beim Starten von VS im Kontextmenü einfach Als Administrator ausführen auswählen.
quelle
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.
quelle
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
quelle