c# - C++/CLI 项目如何引用可移植类库?

标签 c# c++ portable-class-library prism-6

我们有一堆引用 Prism.Core 的 C# 代码。 Prism.Core 是一个可移植类库。当我们在 C++/CLI 中引用它并尝试使用委托(delegate)命令时,我们得到:

C4691: 'System::Object': type referenced was expected in unreferenced assembly 'System.Runtime', type defined in current translation unit used instead

谁能解释一下为什么?除了重建源代码之外,有什么方法可以解决这个问题,因为 Prism 已被嵌入到我们的 c# 源代码中,所以我不想这样做?

最佳答案

我有一个类似的设置,但有相同的警告。 C# 项目引用了具有多个目标框架的 NuGet 包。由于无法将托管 NuGet 包添加到 C++/CLI 项目,因此必须为该项目手动添加引用。手动添加的引用最终指向 NuGet 包中不同目标框架的 DLL。像这样的东西:

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

更改 C++/CLI 项目中的引用以使用与 C# 项目相同的 DLL 在我的案例中修复了它。

关于c# - C++/CLI 项目如何引用可移植类库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160451/

相关文章:

c# - 寻找最近时间的算法

c# - 将 linq 查询结果转换为枚举

c++ - ActiveMQ C++ 同步客户端

c++ - 我遇到了编译器的情况。当我运行代码来删除一串特殊字符时,它在一个编译器中运行,但在另一个编译器中不运行?

c# - .NET Core 和 PCL 之间有什么区别?

c# - C# 编译器如何决定发出可重定向的程序集引用?

c# - 在 Mongodb 中将 JObject 存储为 C# 类的属性

c# - 如何从相对方向确定 360° 角?

c++ - c++中以下类似的语句有区别吗?

mvvm-light - PCL 中的 MVVM Light DispatcherHelper