Tôi đã cố gắng để có được một đăng ký miễn phí. NET dựa COM DLL để làm việc, nhưng không thành công.Cấu hình các thành phần dựa trên .NET để kích hoạt đăng ký miễn phí
- Trong Visual Studio 2008, tôi đã thêm một thư viện lớp C# mới.
- Tôi đã bật tùy chọn 'thực hiện lắp ráp COM-hiển thị' và 'đăng ký COM interop'.
- Tôi đã thêm giao diện công cộng và lớp học với một số chức năng.
- Tôi đã thêm một sự phụ thuộc manifest đến C++ của tôi ứng dụng client: #pragma comment (mối liên kết, "/ manifestdependency ...
Nhưng khi tôi bắt đầu ứng dụng của tôi tôi nhận được 'ứng dụng đã thất bại trong việc bắt đầu vì các ứng dụng cấu hình không chính xác '.
Tôi đã sử dụng công cụ mt của Microsoft để trích xuất tệp kê khai của cả ứng dụng khách C++ và C# COM DLL và thông tin trong cả hai đều giống nhau (tệp dependAssembly trong tệp kê khai C++ chứa cùng tên và phiên bản với tên assemblyIdentity trong tệp kê khai COM).
Tôi cũng đã thử cách tiếp cận được mô tả trên http://msdn.microsoft.com/en-us/library/eew13bza.aspx nhưng với kết quả tương tự.
Tương tự như vậy, tôi đã cố thêm một tham chiếu vào dự án COM của tôi trong 'Khung và Tài liệu tham khảo' của ứng dụng khách C++ của tôi. Thông tin trên trang thuộc tính đó trông đầy hứa hẹn (nó hiển thị các tùy chọn như 'sao chép cục bộ', 'sao chép phụ thuộc', v.v. và các thuộc tính như 'assemblyIdentity'), nhưng Visual Studio không sao chép các tệp DLL cũng như tự động thêm tệp phụ thuộc vào tệp kê khai.
Lưu ý rằng 'biến thể đã đăng ký' hoạt động tốt.
Bất kỳ ai có ý tưởng về những gì tôi đang làm sai?
Cập nhật:
- Khi tôi tạo ra một C++ DLL đơn giản và nhúng một biểu hiện có cùng tên và phiên bản của tôi NET COM DLL (giống assemblyIdentity) ứng dụng của tôi khởi động tốt. Vì vậy, vấn đề nằm với tập tin manifest của tôi. NET COM DLL.
- Tôi có thể trích xuất thành công tệp kê khai từ tệp DLL bằng
mt -managedassemblyname:...
và sau đó nhúng cùng một tệp kê khai vớimt -outputresource:...
, nhưng điều này cũng không khiến Windows giải quyết thành công sự phụ thuộc.
Giải pháp tuyệt vời! Điều này đơn giản hóa quá trình cài đặt đáng kể. Cảm ơn rất nhiều! –
Xin chào, tôi có một C++ lắp ráp mà không một cocreate của một hội COM quản lý và tôi cần cơ chế tương tự. Tôi muốn bỏ qua việc triển khai .Net hiện tại và muốn nó thực hiện cuộc gọi mới của tôi. Việc lắp ráp C++ lần lượt được tải thông qua một exe .Net. Vậy, bản kê khai nên được thiết kế như thế nào cho phe C++? –