Entonces estaba escribiendo una aplicación que requiere acceso al registro. No había tocado ninguna configuración de compilación, quería que todo funcionara antes de agregar los otros toques, como una descripción o un nombre.
De repente, aparece un error que no desaparece. ClickOnce does not support the request execution level 'requireAdministrator'.
Ahora, no había tocado ClickOnce en esta aplicación. Todo lo que hice fue incluir un archivo de manifiesto solicitando estos permisos.
Mi problema ahora es que este error no desaparecerá y no puedo compilar mi programa. ¿Algún consejo sobre qué hacer? (Nota al margen: estoy a punto de irme a la cama, así que lo comprobaré mañana por la tarde).
93
requireAdministrator
permisos y ClickOnce comenzó a quejarse de que no es compatiblerequireAdministrator
. El problema debería ser extremadamente claro. ClickOnce está viendo la necesidad de elevación en su manifiesto (que se convierte en parte de su aplicación). No estoy seguro de qué más necesitas aquí ...Respuestas:
Editar: Este comentario también da una buena respuesta.
Original:
Resulta que en la pestaña Seguridad, se marcó "Habilitar la configuración de seguridad de ClickOnce". Aunque no lo comprobé. De todos modos, desmarcar eso hizo que ClickOnce me diera errores. Eso tomó un tiempo para encontrar ...
fuente
AppData
carpeta. La elevación de privilegios causaría un cambio en el contexto del usuario donde la aplicación ClickOnce ni siquiera está instalada.Sé que esta es una vieja pregunta, pero vine aquí dos años después, así que:
Puede deshabilitar ClicKOnce desde la pestaña Seguridad en las propiedades del proyecto para ayudar con el problema; vea abajo:
fuente
Si alguna vez utiliza el asistente de publicación o 'Publicar ahora', la casilla de verificación de hacer clic una vez se selecciona automáticamente ...
fuente
Sé que esto es antiguo, pero me encontré con él buscando respuestas. En mi caso, estoy usando la función de publicación y necesito seguir usándola. También necesito acceso a las capacidades de administración. Entonces, por esa razón, ninguna de las respuestas anteriores funcionó para mí.
Terminé agregando un método al inicio de mi aplicación que verifica si se está ejecutando como administrador y, si no lo está, se reinicia como administrador. Para hacer esto, necesita agregar las siguientes referencias.
Luego, deberá poner esto en algún lugar al que su método principal tenga acceso útil. Estoy usando WPF, así que lo agregué a MainWindow.xaml.cs, pero puede agregarlo en cualquier lugar al principio de su código. Solo recuerde agregar "estático" a estos métodos si lo necesita.
Por último, al inicio de su programa, agregue una referencia al método. En mi caso, lo agregué a MainWindow, pero agregarlo a Main también funciona.
¡Espero que esto ayude!
fuente
Esta acción se puede lograr seleccionando "Habilitar la configuración de seguridad de ClickOnce" (ya que no se puede "desmarcar" durante una Publicación, como se indica) y luego seleccionando "Esta es una aplicación de confianza parcial". "Intranet local" se seleccionará automáticamente en el menú desplegable, lo cual está perfectamente bien.
Guarde sus cambios, publique la aplicación, done-skis. :-)
fuente
Eche un vistazo en el archivo de manifiesto de su aplicación y verá esto:
Hay instrucciones allí en los comentarios, pero simplemente eliminar el "requireAdministrator" e insertarlo en el lugar me resolvió el problema:
fuente
requireAdministrator
Se requiere privilegio para escribir en el registro, por lo que sería un requisito.asInvoke
Tengo el mismo problema y lo resuelvo desmarcando la opción " Habilitar la configuración de seguridad de ClickOnce" Para encontrar esta opción en Visual Studio Haga clic con el botón derecho en su Proyecto ==> propiedades ==> Seleccionar seguridad ==> Habilitar la configuración de seguridad de ClickOnce (esta opción fue ya marcado, así que lo desmarqué y mi problema se resolvió).
fuente
Aquí está el fragmento de código para VB.NET
EDITAR: Pero si implementa de esta manera, algún software AV bloquea su código.
fuente
Para aquellos que usan desmarcar "Habilitar la configuración de seguridad de ClickOnce" no pueden funcionar, para probar el método que encuentro.
Primero, deje su elemento app.manifest requiredExecutionLevel como está:
Y luego edita su archivo Program.cs así:
reestructurar el método principal como:
¡Funciona en Windows 10 y Visual Studio 2019!
fuente
Para cualquiera que se haya encontrado con esto, pensé en contribuir con lo que terminó funcionando para mí.
Sí, la opción 'Habilitar la configuración de seguridad de ClickOnce' se vuelve a marcar automáticamente, si la desmarcas, cuando haces Crear> Publicar .
Para mí, no necesito 'Publicar', es un .exe simple y portátil que crea Tareas Programadas para mis usuarios y necesitaba asegurarme de que esté elevado, incluso cuando inicie sesión como Administrador.
Así que acabo de tomar mi último .exe de \ bin \ Release y eso es lo que se implementa en los sistemas de mis clientes.
Funcionó como se esperaba, es decir, cuando lo puse en un sistema con UAC habilitado / en su configuración más alta, el .exe tiene el 'escudo', y cuando lo ejecuto, incluso cuando estoy conectado como administrador, se eleva y recibo el mensaje UAC.
Mi pequeña aplicación de programación de tareas ahora puede crear la tarea sin obtener un error de 'Acceso denegado' (que anteriormente solo se podía solucionar haciendo clic derecho en el .exe y haciendo clic en Ejecutar como administrador).
fuente
sólo
y no obtendrá ningún error y su aplicación se ejecutará como administrador
fuente