2011-03-11 15 views
33

Tengo una aplicación WPF que accede a servicios de Windows, planificadores de tareas en la máquina local. Cuando despliego esta aplicación WPF y la ejecuto sin "Ejecutar como administrador", falla ya que no puede acceder a los servicios de Windows ni a los planificadores de tareas en la máquina local. Si lo ejecuto con "Ejecutar como administrador", funciona correctamente.Cómo forzar a una aplicación WPF a ejecutarse en el modo Administrador

¿Cómo hago que mi aplicación se ejecute de forma predeterminada en el modo de administración cuando se implementa en producción?

Respuesta

59

Necesita agregar un app.manifest. Cambie el requestedExecutionLevel de asInvoker a requireAdministrator. Puede crear un nuevo manifiesto utilizando el cuadro de diálogo Agregar archivo, cámbielo para requerir administrador. Asegúrese de que la configuración de su proyecto esté configurada para usar ese manifiesto también. Esto le permitirá simplemente hacer doble clic en la aplicación y automáticamente solicitará la elevación si aún no lo está.

Consulte aquí para obtener más documentación:

http://msdn.microsoft.com/en-us/library/bb756929.aspx

EDIT: Por lo que vale la pena, el artículo utiliza VS 2005 y utilizando mt.exe para incrustar el manifiesto. si está usando Visual Studio 2008+, esto está integrado. Simplemente abra las propiedades de su Proyecto, y en la pestaña "Aplicación" puede seleccionar el manifiesto.

+2

¿Esto funcionará también en Windows 7? Hay una nota en esa página que plantea esta pregunta ... _En versiones futuras, la única forma de ejecutar una aplicación elevada será tener un manifiesto de aplicación firmado que identifique el nivel de privilegio que la aplicación necesita. –

+0

@kzen, a partir de ahora - sí - este mismo procedimiento funcionará para Windows 7. – vcsjones

+0

¿Esto funcionará si instalo mi aplicación en máquinas con Windows Server 2008, que es donde tengo problemas con la ejecución de mi aplicación? – SVI

Cuestiones relacionadas