7

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

C4691:“System::Object”:在未引用的程序集“System.Runtime”中需要引用类型,而是在当前翻译单元中定义的类型

谁能解释为什么?除了重建源代码之外,还有什么方法可以修复,因为 Prism 被 Nugeted 到我们的 c# 源代码中,所以我不想这样做?

4

1 回答 1

0

我有一个带有相同警告的类似设置。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 -> 包\Prism.Core.6.2.0\lib\net45\Prism.dll

将 C++/CLI 项目中的引用更改为使用与 C# 项目相同的 DLL,在我的情况下修复了它。

于 2016-10-06T23:38:46.713 回答