2012-07-12 44 views
6

Tengo un programa que usa el registro para guardar los últimos 10 archivos que se han abierto. En un momento estaba intentando guardarlos en una máquina local, pero decidí guardarlos en el usuario actual. Durante el proceso de intentar que todo funcione, creé un manifiesto para forzar al programa a ejecutar como administrador, lo cual no creo que sea necesario. El problema que estoy teniendo es que parece que no puedo eliminar el requisito.Cómo eliminar el requisito "Ejecutar como administrador" en C#

He cambiado ... Cambié las propiedades del proyecto a "Crear aplicación sin manifiesto", agregué un nuevo elemento llamado app.manifest que tiene por defecto asInvoker y cambié las propiedades para usar ese manifiesto, renombré cualquier archivo que tenga la palabra manifiesta en el nombre del archivo.

Ninguno de estos intentos funcionó. El programa todavía se está ejecutando como administrador. Debo extrañar algo, pero no estoy seguro de qué.

Estas son las líneas en el app.manifest

<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
    </requestedPrivileges> 

Gracias por la ayuda !!

Gary

+0

Elimina el archivo de manifiesto del proyecto. Está claro que está haciendo algo mal, no está seguro de qué sugerir, dado que nos proporcionó muy pocos detalles. ¿Has intentado simplemente editar el actual y/o volver a crear la solución? –

+0

¿qué tal un ejemplo de código ... si agregaste algo seguramente puedes eliminarlo a menos que no entiendas qué es lo que agregaste en primer lugar en lo que respecta al código/funcionalidad de C# – MethodMan

+2

no estoy seguro de qué código quieres una muestra de. Como dije en la pregunta original, eliminé el manifiesto del proyecto cambiando la configuración del proyecto, o al menos esa era mi intención. – Gary

Respuesta

8

Tome un vistazo al archivo en la carpeta app.manifest Propiedades. Retire la línea siguiente:

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

Añadir la siguiente línea en lugar de esto:

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

Si esto no ayuda, primero asegúrese de que también ha quitado el archivo de manifiesto de la carpeta bin \ Debug. Simplemente eliminarlo de la solución no ayuda, porque el archivo aún podría estar disponible en la carpeta de salida.

Es por eso que creo que no debe eliminar el archivo de manifiesto del proyecto, pero cámbielo para que funcione como se esperaba.

+0

¡Gracias por la respuesta! No hay un archivo de manifiesto en el directorio Debug. Cambié las propiedades del proyecto para usar app.mainfest (actualicé la pregunta original para incluir las líneas relevantes) y reconstruí el proyecto y todavía se ejecuta como administrador – Gary

+2

A medida que avanzaba en mi codificación y después de hacer lo que sugeriste ya no tener el problema He compilado el programa varias veces desde que agregué la app.maifest. La primera vez que miré para ver si el requisito todavía estaba allí y lo fue. No sé cuándo cambió, ¡pero gracias! – Gary

2

Aunque esta pregunta tiene más de un año ahora, pero estoy respondiendo, ya que podría salvar el día.

Si configuró su aplicación para que se ejecute como modo de administrador y ahora desea revocar esos derechos, debe realizar los siguientes pasos.

Cambio

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

Para

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

Haga clic derecho en su proyecto -> Limpiar su solución -> Reconstruir su solución y eso es todo.

+0

¿De dónde lo cambias? Mi proyecto de instalación no tiene App.config ni la posibilidad de agregar uno. Veo esta 'respuesta' en todas partes, pero no hay explicación sobre cómo crear esa app.config/manifest. – ExtremeSwat

+0

¿Por qué no puedes agregar uno? ¿En qué tipo de proyecto estás trabajando? ¿Es una aplicación de formularios para ganar? – Ehsan

Cuestiones relacionadas