2010-06-25 51 views
11

Aquí están los detalles del error:error MSB3216 al registrarse el montaje

En la Lista de errores:

de error 1 No se puede registrar montaje "C: \ Users \ cboardman \ documentos \ Visual Studio 2008 \ Projects \ ExcelAddIn1 \ ExcelAddIn1 \ bin \ Debug \ ExcelAddIn1.dll "- acceso denegado. Asegúrese de ejecutar la aplicación como administrador. Se deniega el acceso a la clave de registro 'HKEY_CLASSES_ROOT \ ExcelAddIn1 ...'. C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 3019 9 ExcelAddIn1

En la salida de la contrucción:

Objetivo UnmanagedRegistration: C: \ Windows \ Microsoft .NET \ Framework \ v3.5 \ Microsoft.Common.targets (3019,9): error MSB3216: No se puede registrar el ensamblado "C: \ Users \ cboardman \ Documents \ Visual Studio 2008 \ Projects \ ExcelAddIn1 \ ExcelAddIn1 \ bin \ Debug \ ExcelAddIn1.dll "- acceso denegado. Asegúrese de ejecutar la aplicación como administrador. Se deniega el acceso a la clave de registro 'HKEY_CLASSES_ROOT \ ExcelAddIn1 ...'. Se ejecutó el destino de construcción "Registro no administrado" en el proyecto "ExcelAddIn1.csproj" - FALLÓ.

Por lo que he encontrado en línea, necesito ejecutar Visual Studio como administrador. Esto parece un gran martillo para un clavo pequeño. ¿Hay alguna forma de evitar esto (como una forma de ejecutar solo el registro como administrador)?

Respuesta

9

Lamentablemente, no hay una manera fácil de hacerlo. Por defecto, el registro de los componentes agrega entradas a claves protegidas en el registro (especialmente bajo HKLM). Esto no se puede hacer sin derechos administrativos.

Es técnicamente posible registrar componentes COM como no administrador utilizando las teclas equivalentes en HKCU. Sin embargo, no es un cambio trivial y no creo que las herramientas .Net que registran los ensamblajes puedan configurarse para hacer esto.

Creo que su mejor opción es deshabilitar el registro durante la compilación. A continuación, abra una ventana de administración separada en la que pueda registrar manualmente el archivo DLL con fines de depuración. La reinscripción solo es realmente necesaria si cambia las interfaces relacionadas con COM o la ubicación de la DLL, por lo que no es necesario hacerlo para cada F5.

4

Cerrar Visual Studio y volver a abrir haciendo clic derecho sobre él -> Ejecutar como administrador resolvió el problema para mí.

Cuestiones relacionadas