2010-10-22 30 views
6

Khi ký cho COM Interop tùy chọn trong việc xây dựng các thuộc tính được chọn, tôi nhận được một lỗi:Đăng ký cho COM Interop

Cannot register assembly -access denied

Khi tùy chọn được đánh dấu, dự án xây dựng mà không cần bất kỳ lỗi. Nhưng yêu cầu của tôi là để đăng ký các đối tượng COM như tôi cần phải sử dụng giống nhau trong VB. Bất cứ ai có thể giúp tôi trong này?

Trả lời

9

Trong Windows Vista trở lên, hãy thử chạy Visual Studio được nâng lên, do đó, nó có các quyền cần thiết để thực hiện regasm trên cụm đầu ra của bạn.

+0

Cảm ơn, giải pháp này đã làm việc cho tôi ..... – Kings

+4

Sau đó đánh dấu nó là câu trả lời :) –

8

Phần mở rộng cho câu trả lời của Frédéric Hamidi (upvote cho sir của bạn), bạn có thể chạy Visual Studio với tư cách quản trị viên hoặc tắt 'đăng ký COM interop' và mở lời nhắc lệnh với tư cách quản trị viên.

Lệnh đăng ký thành phần này là sau đó một cái gì đó như thế này (trên máy tính của tôi - W7 64-bit):

c:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /tlb /codebase C:\path\to\your\DLL 

Cá nhân tôi sử dụng sau này là quá trình gỡ lỗi là khá phức tạp và đôi khi nó không thể để duyệt qua mã (hoặc một số lỗi đang diễn ra trên một máy khác)

+1

Rất hữu ích. Tôi đang xây dựng một giải pháp Biztalk 2002 cổ đại, nơi RegisterForComInterop được đặt thành true cho hầu hết các dự án. Tôi không thích chạy quá trình xây dựng của tôi một quản trị viên vì vậy nó đã thất bại khi nó đã cố gắng để RegAsm DLL biên dịch. Dường như điều này là tốt vì tôi không cần nó đăng ký trên máy chủ xây dựng ... chúng tôi đăng ký DLL biên dịch trên máy chủ ứng dụng khi triển khai. Cảm ơn! –

Các vấn đề liên quan