J'écrivais donc une application qui nécessite un accès au registre. Je n'avais touché à aucun paramètre de construction, voulant faire fonctionner la chose avant d'ajouter les autres touches, telles qu'une description ou un nom.
À l'improviste, j'obtiens une erreur qui ne disparaîtra pas. ClickOnce does not support the request execution level 'requireAdministrator'.
Maintenant, je n'avais pas touché ClickOnce dans cette application. Tout ce que j'avais fait était d'inclure un fichier manifeste demandant ces autorisations.
Mon problème maintenant est que cette erreur ne disparaîtra pas et je ne peux pas compiler mon programme. Un conseil sur quoi faire? (Note latérale: je suis sur le point d'aller me coucher, donc je vérifierai cela demain après-midi).
93
requireAdministrator
autorisations et ClickOnce a commencé à se plaindre qu'il ne prend pas en chargerequireAdministrator
. Le problème doit être extrêmement clair. ClickOnce voit le besoin d'élévation dans votre manifeste (qui devient une partie de votre application). Je ne sais pas ce dont vous avez besoin de plus ici ...Réponses:
Edit: Ce commentaire donne également une bonne réponse.
Original:
Il s'avère que sous l'onglet Sécurité, "Activer les paramètres de sécurité ClickOnce" a été coché. Même si je ne l'ai pas vérifié. Quoi qu'il en soit, décocher cela a arrêté ClickOnce de me donner des erreurs. Cela a mis du temps à trouver ...
la source
AppData
dossier. L'élévation de privilèges entraînerait un basculement du contexte utilisateur dans lequel l'application ClickOnce n'est même pas installée.Je sais que c'est une vieille question mais je suis venu ici deux ans plus tard alors:
Vous pouvez désactiver ClicKOnce à partir de l'onglet Sécurité sur les propriétés du projet pour résoudre le problème; voir ci-dessous:
la source
Si jamais vous utilisez l'assistant de publication ou «Publier maintenant», la case à cocher «clic unique» est automatiquement sélectionnée ...
la source
Je sais que c'est vieux mais je suis tombé dessus à la recherche de réponses. Dans mon cas, j'utilise la fonction de publication et je dois continuer à l'utiliser. J'ai également besoin d'accéder aux capacités d'administration. Donc, pour cette raison, aucune des réponses ci-dessus n'a fonctionné pour moi.
J'ai fini par ajouter une méthode au tout début de mon application qui vérifie si elle est exécutée en tant qu'administrateur et si ce n'est pas le cas, se relance en tant qu'administrateur. Pour ce faire, vous devez ajouter les références suivantes.
Ensuite, vous devrez placer ceci quelque part auquel votre méthode principale a un accès pratique. J'utilise WPF, je l'ai donc ajouté à MainWindow.xaml.cs mais vous pouvez l'ajouter n'importe où au début de votre code. N'oubliez pas d'ajouter "statique" à ces méthodes si vous en avez besoin.
Enfin, au démarrage de votre programme, ajoutez une référence à la méthode. Dans mon cas, je l'ai ajouté à MainWindow mais l'ajouter à Main fonctionne aussi.
J'espère que cela t'aides!
la source
Cette action peut être réalisée en sélectionnant «Activer les paramètres de sécurité ClickOnce» (car il ne peut pas être «décoché» lors d'une publication, comme indiqué), puis en sélectionnant «Ceci est une application de confiance partielle». "Intranet local" sera automatiquement sélectionné dans le menu déroulant, ce qui est parfaitement bien.
Sauvegardez vos modifications, publiez l'application, done-skis. :-)
la source
Jetez un œil dans votre fichier app.Manifest et vous verrez ceci:
Il y a des instructions là-bas dans les commentaires, mais supprimer simplement le "requireAdministrator" et l'insérer à l'endroit a résolu le problème pour moi:
la source
requireAdministrator
un privilège est requis pour écrire dans le registre, ce serait donc une condition.asInvoke
J'ai le même problème s Je le résous en décochant la case « Activer les paramètres de sécurité ClickOnce» Pour trouver cette option dans Visual Studio Cliquez avec le bouton droit sur votre projet ==> propriétés ==> Sélectionnez Sécurité ==> Activer les paramètres de sécurité ClickOnce (Cette option était déjà vérifié, donc je l'ai décoché et mon problème est résolu).
la source
Voici l'extrait de code pour VB.NET
EDIT: Mais si vous déployez de cette manière, certains logiciels AV bloquent votre code.
la source
Pour ceux qui utilisent décocher "Activer les paramètres de sécurité ClickOnce" ne peut pas fonctionner, pour essayer la méthode que je trouve.
Tout d'abord, laissez votre élément app.manifest demandéExecutionLevel tel quel:
Et puis vous éditez votre fichier Program.cs comme ceci:
restructurer la méthode principale comme:
Cela fonctionne sur Windows 10 et Visual Studio 2019!
la source
Pour tous ceux qui ont rencontré cela, j'ai pensé que je contribuerais à ce qui a fonctionné pour moi.
Oui, l'option `` Activer les paramètres de sécurité ClickOnce '' est automatiquement re-cochée, si vous la décochez, lorsque vous faites Construire> Publier .
Pour moi, je n'ai pas besoin de «publier» - c'est un .exe simple et portable qui crée des tâches planifiées pour mes utilisateurs et je devais m'assurer qu'il était élevé, même lorsque je me suis connecté en tant qu'administrateur.
J'ai donc récupéré mon dernier .exe à partir de \ bin \ Release et c'est ce qui est déployé sur les systèmes de mes clients.
A fonctionné comme prévu - c'est-à-dire lorsque je le mets sur un système avec UAC activé / à son réglage le plus élevé, le .exe a le `` bouclier '' dessus, et quand je l'exécute, même lorsque je suis connecté en tant qu'administrateur, il élève et j'obtiens l'invite UAC.
Ma petite application de planificateur de tâches est maintenant capable de créer la tâche sans obtenir une erreur `` Accès refusé '' (qui auparavant, ne pouvait être contournée qu'en cliquant avec le bouton droit sur le .exe et en cliquant sur Exécuter en tant qu'administrateur).
la source
juste
et U n'obtiendra aucune erreur et votre application sera exécutée en tant qu'administrateur
la source