2010-06-25 4 views
11

Sau đây là các chi tiết lỗi:lỗi MSB3216 khi đăng ký lắp ráp

Trong Danh sách Lỗi:

Lỗi 1 Không thể đăng ký lắp ráp "C: \ Users \ cboardman \ Documents \ Visual Studio 2008 \ Projects \ ExcelAddIn1 \ ExcelAddIn1 \ bin \ Debug \ ExcelAddIn1.dll "- truy cập bị từ chối. Hãy đảm bảo rằng bạn đang chạy ứng dụng với tư cách quản trị viên. Truy cập vào khóa đăng ký 'HKEY_CLASSES_ROOT \ ExcelAddIn1 ...' bị từ chối. C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 3019 9 ExcelAddIn1

Trong xây dựng Output:

Target UnmanagedRegistration: C: \ Windows \ Microsoft .NET \ Framework \ v3.5 \ Microsoft.Common.targets (3019,9): lỗi MSB3216: Không thể đăng ký assembly "C: \ Users \ cboardman \ Documents \ Visual Studio 2008 \ Projects \ ExcelAddIn1 \ ExcelAddIn1 \ bin \ Debug \ ExcelAddIn1.dll "- truy cập bị từ chối. Hãy đảm bảo rằng bạn đang chạy ứng dụng với tư cách quản trị viên. Truy cập vào khóa đăng ký 'HKEY_CLASSES_ROOT \ ExcelAddIn1 ...' bị từ chối. Hoàn thành mục tiêu xây dựng "Không được quản lýĐăng ký" trong dự án "ExcelAddIn1.csproj" - FAILED.

Từ những gì tôi đã tìm thấy trực tuyến, tôi cần phải chạy Visual Studio làm quản trị viên. Điều này có vẻ giống như một cái búa lớn cho một móng tay nhỏ. Có cách nào xung quanh điều này (giống như một cách để chỉ chạy đăng ký với tư cách là quản trị viên)?

Trả lời

9

Rất tiếc, không có cách nào dễ dàng để thực hiện việc này. Theo mặc định, việc đăng ký các thành phần sẽ thêm các mục vào các khóa được bảo vệ trong sổ đăng ký (theo đặc biệt là HKLM). Điều này không thể được thực hiện nếu không có quyền quản trị.

Về mặt kỹ thuật, có thể đăng ký thành phần COM dưới dạng không phải quản trị viên bằng cách sử dụng các khóa tương đương trong HKCU. Tuy nhiên nó không phải là một sự thay đổi tầm thường và tôi không tin rằng các công cụ Net. Đăng ký các hội đồng có thể được cấu hình để làm điều này.

Tôi nghĩ rằng tùy chọn tốt nhất của bạn là tắt đăng ký trong khi xây dựng. Sau đó, có một cửa sổ Admin riêng biệt mở nơi bạn có thể đăng ký DLL từ mục đích gỡ lỗi. Việc đăng ký lại chỉ thực sự cần thiết nếu bạn thay đổi giao diện liên quan đến COM hoặc vị trí của DLL để nó không phải được thực hiện cho mọi F5.

4

Đóng Visual Studio và mở lại bằng cách nhấp chuột phải vào nó -> Chạy với tư cách Quản trị viên đã giải quyết được sự cố cho tôi.