2012-04-17 8 views
7

Chúng tôi có một plugin cho IE dựa trên spicIE, mục đích là để kết nối với một số thiết bị bên ngoài.RegAsm thực sự làm gì? Các tệp được sao chép ở đâu?

Để kết nối với các thiết bị bên ngoài đó, một công ty khác đã phát triển mã thông báo & DLL của họ. Chúng ta cần phải có một số ActiveX và DLL để thực hiện xác thực bằng token.

Vấn đề là plugin chúng tôi phát triển cho IE, trong phần cuối cùng có tệp install.bat, chạy RegAsm và đăng ký DLL và sau đó plugin (hoặc thay đổi) có thể xem được trong IE.

Khi chạy plugin từ IE, mã của chúng tôi không thể tìm thấy một số DLL, bắt buộc để xác thực (đặt tên là x.dll). Đâu là đăng ký DLL sao chép? Nó có thực sự được sao chép không? Tôi cần phải có x.dll trong thư mục nơi DLL của plugin của tôi tồn tại.

Trả lời

6

Tóm lại, RegAsm đăng ký hội đồng .NET của bạn thành COM-viewable. Từ MSDN: Khi một lớp được đăng ký, bất kỳ COM client nào cũng có thể sử dụng nó như thể lớp đó là một lớp COM. Lớp được đăng ký chỉ một lần, khi lắp ráp được cài đặt. Các cá thể của các lớp trong assembly không thể được tạo từ COM cho đến khi chúng thực sự được đăng ký.

Nếu không thấy mã của bạn trong ActiveX, nếu tôi hiểu chính xác, ActiveX của bạn phụ thuộc vào một số DLL COM, đó là lý do tại sao bạn đang chạy RegAsm dựa trên .NET DLL.

Chạy RegDllView để tìm chi tiết về những gì được đăng ký và sau đó kiểm tra xem bạn có thực sự khởi tạo đối tượng đã đăng ký thực tế hay không.

Ngoài ra, nếu bạn vẫn gặp sự cố, hãy thử khởi tạo đối tượng trong VB6/Visual Studio 2010 v.v. hoặc tương đương trong phần kết nối sớm để xem bạn có gặp sự cố nào không. Kiểm tra lỗi trên instantiation.

+0

tình huống đảo ngược, chúng tôi cần phải khởi tạo thành phần com/active x trong mã được quản lý của chúng tôi, mã được quản lý của chúng tôi không thể tìm thấy thành phần com/active x –

+1

Ahh ok. Nếu đây là những thành phần COM cổ điển, thì bạn chỉ nên làm regsvr32 trên chúng. Sau đó, bạn sẽ có thể thêm một tham chiếu trong dự án VS .NET của bạn, dưới tab COM và khởi tạo. VS làm tất cả các công việc khó khăn cho bạn trong nền về loại ánh xạ vv – AshesToAshes

+1

Ngoài ra chỉ để thêm vào đó, có thông tin tốt ở đây: http://stackoverflow.com/questions/635839/best-way-to- truy cập-com-đối tượng-từ-c-sắc nét mà sẽ giúp bạn bắt đầu quá. Một lần nữa, cố gắng để nhanh chóng nó và kiểm tra các HRESULT/bắt mà đi ra khi bạn đi cùng. – AshesToAshes