对类型INavigationService的引用声称它在Prism中定义,但找不到

时间:2018-10-01 14:13:33

标签: c# xamarin.forms prism

更新到Xamarin.Forms 3.1之后。和Prism.Forms 7.1.0.279-pre,我的NUnit项目似乎找不到INavigationService。 那个蜜蜂说;我可以创建INavigationService的模拟对象,但是尝试将其注入到ViewModel时会失败。

  

“引用类型'INavigationService'的声明是在   'Prism',但找不到”。

因此,我们无法在视图模型上运行任何测试。

PCL和NUnit项目正在使用相同版本的.Net,XF和Prism。 我还尝试了不同的版本,包括pre和stable。

有人可以在这里指出我正确的方向吗? 在我们更新解决方案之前,NUnit项目工作得很好。

2 个答案:

答案 0 :(得分:3)

可能有点晚了,但是我遇到了同样的问题。我发现我的测试项目.csproj文件引用了Prism Core的“ net45”版本,而所有其他Prism软件包都引用了“ netstandard2.0”版本。手动编辑并将“ net45”更改为“ netstandard2.0”后,一切正常。

答案 1 :(得分:0)

根据上述建议,我不得不将单元测试csproj文件中的Prism.Core软件包引用更改为从net45指向netstandard 2.0

从此:

<HintPath>..\packages\Prism.Core.7.1.0.431\lib\net45\Prism.dll</HintPath>

对此:

<HintPath>..\packages\Prism.Core.7.1.0.431\lib\netstandard2.0\Prism.dll</HintPath>

我的单元测试项目是.NET Framework 4.7.1 NUnit项目