Tôi đang làm việc trên một sản phẩm hiển thị một số API .NET thông qua COM interop. Là một phần của bản dựng, chúng tôi tạo các tệp * .tlb cho tất cả các hội đồng đó và phân phối chúng như một phần của gói SDK riêng biệt. Khách hàng của chúng tôi có thể cài đặt SDK trên đầu sản phẩm của chúng tôi và tạo các ứng dụng sử dụng API COM của chúng tôi.Tệp * .tlb có được sử dụng khi chạy không?
Chúng tôi có cần gửi và đăng ký các tệp * .tlb đó với chính sản phẩm không? Có tình huống khi * .tlb được yêu cầu khi chạy, khi các thư viện của bên thứ ba được mã hóa với chúng được thực thi không?
Vui lòng giải thích cách hoạt động, nếu bạn trả lời Có. Tôi thấy rất nhiều ý kiến trên internet nói rằng tôi phải giao và đăng ký chúng, nhưng tôi không tìm thấy một giải thích rõ ràng tại sao nó nên được thực hiện. Điều đó làm tôi nghi ngờ rằng điều đó là sự thật.
Cảm ơn bạn đó là những gì tôi đang tìm kiếm. – Dennis
Tài liệu của Microsoft xác nhận nó: http://msdn.microsoft.com/en-us/library/eaw10et3.aspx#marshaling_and_com_apartments “Chấp nhận chi phí của marshaling chéo căn hộ, đáng chú ý chỉ khi có nhiều cuộc gọi qua ranh giới. Bạn phải đăng ký thư viện kiểu của thành phần COM cho các cuộc gọi để vượt qua thành công ranh giới căn hộ. ” – Dennis
http://msdn.microsoft.com/en-us/library/windows/desktop/ms692621(v=vs.85).aspx "Một thay thế cho việc sử dụng MIDL để tạo proxy và khai báo cho các giao diện tùy chỉnh, một thư viện kiểu có thể được tạo ra và hệ thống được cung cấp, công cụ marshaling kiểu thư viện sẽ sắp xếp giao diện." – Dennis