2016-03-22 16 views
7

Chúng tôi đã có một bó mã C# tham chiếu Prism.Core. Prism.Core là một thư viện lớp di động. Khi chúng tôi tham khảo điều này trong C++/CLI và cố gắng sử dụng lệnh đại biểu, chúng tôi nhận được:Làm thế nào một dự án C++/CLI có thể tham khảo một thư viện lớp di động?

C4691: 'System :: Object': loại tham chiếu được mong đợi trong hội đồng không được tham chiếu 'System.Runtime', loại được xác định trong đơn vị dịch hiện tại được sử dụng thay thế

Có thể giải thích tại sao không? Và có cách nào để sửa chữa, ngoài việc xây dựng lại nguồn, mà tôi không muốn làm như Prism được Nugeted vào nguồn C# của chúng ta?

Trả lời

0

Tôi đã thiết lập tương tự với cùng một cảnh báo. Dự án C# tham chiếu một gói NuGet với nhiều khung mục tiêu. Vì các gói NuGet được quản lý không thể được thêm vào các dự án C++/CLI, nên một tham chiếu phải được thêm thủ công cho dự án đó. Tham chiếu được thêm thủ công kết thúc bằng một DLL cho một khung đích khác trong gói NuGet. Một cái gì đó như:

CSharpProject.csproj -> packages\Prism.Core.6.2.0\lib\portable-win+net45+wp80+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Prism.dll 
CppCliProject.vcxproj -> packages\Prism.Core.6.2.0\lib\net45\Prism.dll

Thay đổi tham chiếu trong dự án C++/CLI để sử dụng cùng một DLL như dự án C# đã khắc phục trong trường hợp của tôi.

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