Also habe ich eine Anwendung geschrieben, die Zugriff auf die Registrierung erfordert. Ich hatte keine Build-Einstellungen berührt und wollte das Ding zum Laufen bringen, bevor ich die anderen Berührungen wie eine Beschreibung oder einen Namen hinzufügte.
Aus heiterem Himmel erhalte ich einen Fehler, der nicht verschwindet. ClickOnce does not support the request execution level 'requireAdministrator'.
Jetzt hatte ich ClickOnce in dieser Anwendung nicht berührt. Ich hatte lediglich eine Manifestdatei beigefügt, in der diese Berechtigungen angefordert wurden.
Mein Problem ist jetzt, dass dieser Fehler nicht behoben wird und ich mein Programm nicht kompilieren kann. Irgendwelche Ratschläge, was zu tun ist? (Randnotiz: Ich gehe gleich ins Bett, also werde ich das morgen nachmittag überprüfen).
91
requireAdministrator
Berechtigungen angefordert wurden , und ClickOnce hat angefangen, sich darüber zu beschweren, dass es nicht unterstützt wirdrequireAdministrator
. Das Problem sollte sehr klar sein. ClickOnce sieht die Notwendigkeit einer Erhöhung in Ihrem Manifest (das Teil Ihrer Anwendung wird). Ich bin nicht sicher, was Sie hier mehr brauchen ...Antworten:
Bearbeiten: Dieser Kommentar gibt auch eine gute Antwort.
Original:
Es stellte sich heraus, dass auf der Registerkarte "Sicherheit" die Option "ClickOnce-Sicherheitseinstellungen aktivieren" aktiviert war. Obwohl ich es nicht überprüft habe. Wenn Sie das Kontrollkästchen deaktivieren, wird ClickOnce nicht mehr angezeigt und es treten Fehler auf. Es hat eine Weile gedauert, bis wir ...
quelle
AppData
Ordner installiert werden . Die Erhöhung der Berechtigungen würde zu einem Wechsel des Benutzerkontexts führen, in dem die ClickOnce-Anwendung nicht einmal installiert ist.Ich weiß, dass dies eine alte Frage ist, aber ich kam zwei Jahre später hierher, also:
Sie können ClicKOnce auf der Registerkarte Sicherheit in den Projekteigenschaften deaktivieren, um das Problem zu beheben. siehe unten:
quelle
Wenn Sie jemals den Veröffentlichungsassistenten oder "Jetzt veröffentlichen" verwenden, wird das Kontrollkästchen "Einmal klicken" automatisch aktiviert ...
quelle
Ich weiß, dass dies alt ist, aber ich bin darüber gestolpert und habe nach Antworten gesucht. In meinem Fall verwende ich die Veröffentlichungsfunktion und muss sie weiterhin verwenden. Ich benötige auch Zugriff auf Verwaltungsfunktionen. Aus diesem Grund hat keine der oben genannten Antworten für mich funktioniert.
Am Ende meiner Anwendung habe ich eine Methode hinzugefügt, die überprüft, ob sie als Administrator ausgeführt wird, und wenn dies nicht der Fall ist, starten Sie sich selbst als Administrator neu. Dazu müssen die folgenden Referenzen hinzugefügt werden.
Dann müssen Sie dies an einer Stelle ablegen, auf die Ihre Hauptmethode praktisch zugreifen kann. Ich verwende WPF, also habe ich es zu MainWindow.xaml.cs hinzugefügt, aber Sie können es überall früh in Ihrem Code hinzufügen. Denken Sie daran, diesen Methoden "statisch" hinzuzufügen, falls Sie sie benötigen.
Fügen Sie zu Beginn Ihres Programms einen Verweis auf die Methode hinzu. In meinem Fall habe ich es zu MainWindow hinzugefügt, aber das Hinzufügen zu Main funktioniert auch.
Hoffe das hilft!
quelle
Diese Aktion kann erreicht werden, indem Sie "ClickOnce-Sicherheitseinstellungen aktivieren" auswählen (da sie wie angegeben während einer Veröffentlichung nicht "deaktiviert" werden kann) und dann "Dies ist eine teilweise Vertrauensstellung" auswählen. "Lokales Intranet" wird automatisch im Dropdown-Menü ausgewählt, was vollkommen in Ordnung ist.
Speichern Sie Ihre Änderungen, veröffentlichen Sie die Anwendung, fertig-Ski. :-)
quelle
Werfen Sie einen Blick in Ihre App.Manifest-Datei und Sie werden Folgendes sehen:
Es gibt Anweisungen in den Kommentaren, aber nur das Löschen des "requireAdministrator" und das Einfügen dieser ist das Problem für mich gelöst:
quelle
Ich habe das gleiche Problem. Ich behebe es, indem ich die Option " ClickOnce-Sicherheitseinstellungen aktivieren" deaktiviere. Um diese Option in Visual Studio zu finden, klicken Sie mit der rechten Maustaste auf Ihr Projekt ==> Eigenschaften ==> Sicherheit auswählen ==> ClickOnce-Sicherheitseinstellungen aktivieren (Diese Option war bereits aktiviert, also habe ich es deaktiviert und mein Problem wurde behoben).
quelle
Hier ist das Code-Snippet für VB.NET
BEARBEITEN: Wenn Sie jedoch auf diese Weise bereitstellen, blockiert einige AV-Software Ihren Code.
quelle
Für diejenigen, die das Kontrollkästchen "ClickOnce-Sicherheitseinstellungen aktivieren" deaktivieren, kann es nicht funktionieren, die von mir gefundene Methode auszuprobieren.
Lassen Sie zunächst Ihr angefordertes app.manifestExecutionLevel-Element wie folgt:
Und dann bearbeiten Sie Ihre Program.cs-Datei wie folgt:
Hauptmethode umstrukturieren wie:
Es funktioniert unter Windows 10 und Visual Studio 2019!
quelle
Für jeden, der darauf stößt, dachte ich, ich würde dazu beitragen, was letztendlich für mich funktioniert hat.
Ja, die Option "ClickOnce-Sicherheitseinstellungen aktivieren" wird automatisch erneut aktiviert, wenn Sie sie deaktivieren, wenn Sie " Erstellen"> "Veröffentlichen" ausführen .
Für mich muss ich nicht "Veröffentlichen" - es ist eine einfache, tragbare EXE-Datei, die geplante Aufgaben für meine Benutzer erstellt, und ich musste sicherstellen, dass sie erhöht ist, auch wenn ich als Administrator angemeldet bin.
Also habe ich mir gerade meine neueste EXE-Datei aus \ bin \ Release geholt und diese wird auf den Systemen meiner Kunden bereitgestellt.
Funktionierte wie erwartet - dh wenn ich es auf ein System mit aktivierter Benutzerkontensteuerung / mit der höchsten Einstellung stelle, ist auf der EXE-Datei das "Schild" angebracht, und wenn ich es ausführe, selbst wenn ich als Administrator angemeldet bin, es erhöht sich und ich erhalte die UAC-Eingabeaufforderung.
Meine kleine Taskplaner-App kann die Aufgabe jetzt erstellen, ohne dass der Fehler "Zugriff verweigert" angezeigt wird (der zuvor nur umgangen werden konnte, indem Sie mit der rechten Maustaste auf die EXE-Datei klicken und auf Als Administrator ausführen klicken).
quelle
gerade
und U wird keine Fehlermeldung erhalten und Ihre Anwendung wird als Administrator ausgeführt
quelle