2010-06-20 14 views
15

Estoy ejecutando VS2K8 en Win7 de 64 bits. He iniciado sesión como administrador y lo estoy ejecutando como administrador, pero el programa en el que estoy trabajando falla y se niega el acceso cuando llamo a una API restringida. Si ejecuta el programa desde Explorer con "Ejecutar como administrador", funciona.Depure un programa que necesita derechos de administrador en Windows 7

Estaba convencido de que VS2K8 depura programas con los derechos con los que VS2K8 se está ejecutando. Tal como está, no puedo depurar mi aplicación debido a esto y no sé qué está pasando.

+0

Para lectores futuros. Usé la aplicación. Respuestas más detalladas a continuación. Pero para VS2012 (sé que esto era para VS2008 originalmente) ... para VS2012, tuve que ir al Proyecto // Propiedades // (Pestaña de Depuración) // y luego deseleccionar (desmarcar) el "Habilitar el proceso de alojamiento de Visual Studio" . Mi O/S también fue Windows Server 2008, pero de 64 bits. – granadaCoder

Respuesta

6

Encontré la respuesta. Resulta que, de hecho, es un problema manifiesto: por defecto, si tiene un manifiesto, debe establecer el privilegio de administrador apropiado. El valor predeterminado es asInvoker, pero eso no funciona si necesita privilegios elevados, sino que debe establecerlo en requireAdministrator en las propiedades del manifiesto.

2

Ejecute VS2008 como administrador.

0

Mi prueba con Vista y VS2005 mostró que cuando utiliza un proceso de host, el comportamiento bajo el depurador depende únicamente de cómo inició Visual Studio y no en el manifiesto (o falta de manifiesto) de su aplicación. Cuando se inicia Visual Studio elevado, el comportamiento depende únicamente del uso (o no) de un proceso de host, no en el manifiesto. Esto probablemente todavía sea cierto con Windows 7 y VS2008.

Además, ¿ha intentado ejecutar la aplicación fuera de VS y utilizando Adjuntar al proceso?

7

Lo mejor es ejecutar el estudio VS2008 como administrador. Además, es bueno cambiar la configuración de manifiesto de su aplicación para requerir privilegios de administrador. El sistema le pedirá que lo eleve a administrador cada vez que inicie su aplicación y cuando se ejecute en VS2008, el IDE le ofrecerá la opción antes de iniciar la depuración.

Para cambiar la configuración, abra las propiedades del proyecto y vaya a Propiedades de configuración -> Enlazador -> Archivo de manifiesto -> Nivel de ejecución de UAC.

12

Esto funciona para Visual Studio 2012.

  • Crear un archivo de manifiesto: haga clic derecho en el proyecto y seleccione "Agregar nuevo elemento", seleccionar "Aplicación archivo de manifiesto". Esto agregará un archivo llamado app.manifest al proyecto.
  • Editar el archivo de manifiesto: establecer el atributo level para la etiqueta requestedExecutionLevel a requireAdministrator.

Ahora su programa siempre requerirá privilegios de administrador, donde sea que se ejecute. Si lo inicia el depurador de Visual Studio, se lo solicitará que reinicie Visual Studio como administrador, si es necesario.

1

tuve un caso en el que puse en los

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

ajustes (descritos por otra respuesta a esta entrada) ........ y no funcionaba.

Encontré otro consejo (véase a continuación) ... y desmarcar esa opción permitió que mi código funcionara.

trate de ir a las propiedades del proyecto, y en la pestaña "depuración", desmarque "Activar el Estudio de alojamiento proceso visual" y ver si eso solucione el problema.

(de https://social.msdn.microsoft.com/Forums/vstudio/en-US/b5c4da93-5d64-442e-af28-df6d10765538/debug-as-administrator?forum=vbgeneral)

así que necesitaba la configuración app.manifest y el "desmarque".

Cuestiones relacionadas