2011-01-06 36 views
8

Máy chủ COM được tạo và tôi registerd đó.Không thể thêm tham chiếu COM vào COM client?

Khi tôi đang cố gắng thêm máy chủ COM đó trong ứng dụng khách COM, tôi không thể thêm và lỗi sau đang đến.

"Một tài liệu tham khảo để 'COMTest' không thể được thêm

Các ActiveX loại Thư viện 'c \ user \ ~ \ Debug \ COMTest.tlb' là xuất khẩu từ một assembly .NET và có thể không thêm vào như là một tài liệu tham khảo.

Thêm một tham chiếu đến NET thay vì "

ai có thể cho tôi biết sự sai lầm là gì. Tôi đăng ký COM trong cả hai cách, từ VS cũng và cũng đã cố gắng với dấu nhắc lệnh.

Trả lời

10

Đây là thông báo "tại sao bạn sẽ làm điều đó". Project + Add Reference, Browse tab, chọn DLL, không phải TLB. Vì vậy, bạn sẽ sử dụng các lớp .NET (es) trực tiếp thay vì đi qua interop COM hai lần.

+15

IMO đó là tình huống ** "tại sao không làm việc này" **. Các.NET hội có thể được sử dụng như COM Server (* "Nó đơn giản! Chỉ cần thêm các thuộc tính ComVvisible!" *), Ứng dụng .NET có thể được khách hàng COM (* "nwe và cải thiện với bản cập nhật mới nhất" *). Nó phải là một cảnh báo, không phải là một dấu chấm hết. ----- Trường hợp sử dụng: Tôi đang thay thế một thành phần COM gốc bằng một thành phần .NET, nhưng .NET client cần phải tương thích với cả hai. – peterchen

+1

.. Đó là sự thật tôi có thể đi để duyệt. Nhưng tôi đang học COM, và tôi không thể hiểu được lỗi !! Tôi đang đăng ký DLL cũng như tlb .... Ngay cả tôi cũng đã cho snk key. @peterchen .... ComVisible (đúng), tôi đã thử cả hai, có thể giải thích cho tôi lỗi. – PawanS

+1

Bạn nên viết mã máy khách bằng một ngôn ngữ khác. Javascript, VBScript, VB6, một cái gì đó như thế. Cuối ràng buộc được hỗ trợ, VB.NET là một ngôn ngữ tốt cho điều đó. Hoặc từ khóa * động * trong C# 4. –

2

Tôi giả sử bạn giới thiệu .tlb. bạn nên tham khảo .dll,

Và sau khi đăng ký bằng regsvr32, bạn chỉ cần tìm dll đó trong .net thêm tham chiếu trong tab com. Hãy xem here để biết thêm.

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