2011-11-28 38 views
8

Tôi có một giải pháp với dự án dll C++ và dự án C# sử dụng nó. Vấn đề là đường dẫn xây dựng của dự án C++ nằm trong thư mục giải pháp và C# nằm trong thư mục bin của dự án (mỗi thư mục lồng nhau với gỡ lỗi/giải phóng), do đó, DllImport không tìm thấy chúng.
Có cách nào tiêu chuẩn để sửa lỗi này không?C#/C++ trong cùng một giải pháp - DllImport không tìm thấy DLL

+0

Bạn đã thêm dll vào tài liệu tham khảo dự án chưa? – Tudor

+0

@Tudor Có (không điền phụ) – baruch

Trả lời

6

Cách bạn phải làm điều này là đặt đường dẫn xây dựng cho cả hai dự án vào cùng một thư mục 'bin' ... tốt nhất là một giải pháp chứ không phải dự án. Sau đó, chỉ cần tạo tất cả các dự án xây dựng cho một thư mục đó. Bạn có thể thay đổi điều đó từ cài đặt Project.

Kỹ thuật khác là sử dụng bước sau khi xây dựng cho ứng dụng C++ sao chép tệp DLL vào thư mục của dự án C#. Bằng cách đó bạn không thực sự thay đổi bất kỳ đường dẫn nào. Bạn chỉ cần sao chép qua một DLL. Hãy cẩn thận ở đây mặc dù bởi vì khi bạn làm sạch dự án của tập tin C++, bạn có thể vẫn còn có bản sao trong thư mục bin C# projec'ts để bạn gãi đầu vì sao mọi thứ không xảy ra như mong đợi.

Cách khác, bạn có thể triển khai DLL C++ vào đường dẫn hệ thống (cũng như một phần của bước xây dựng) nhưng bạn sẽ có cùng các vấn đề như đã nêu ở trên.

Để gỡ lỗi, tôi khuyên bạn nên thực hiện theo thứ tự được trình bày.

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