C# 对INavigationService类型的引用声明它是在Prism中定义的,但找不到它

C# 对INavigationService类型的引用声明它是在Prism中定义的,但找不到它,c#,xamarin.forms,prism,C#,Xamarin.forms,Prism,更新至Xamarin.Forms 3.1后。还有Prism.Forms 7.1.0.279-pre,我的NUnit项目似乎找不到INavigationService。 比因说;我可以创建INavigationService的模拟对象,但在尝试将其注入ViewModel时失败 对“INavigationService”类型的引用声明了其在中的定义 “Prism”,但找不到它 因此,我们无法在viewmodels上运行任何测试 PCL和NUnit项目使用的是相同版本的.Net、XF和Prism。 我

更新至Xamarin.Forms 3.1后。还有Prism.Forms 7.1.0.279-pre,我的NUnit项目似乎找不到INavigationService。 比因说;我可以创建INavigationService的模拟对象,但在尝试将其注入ViewModel时失败

对“INavigationService”类型的引用声明了其在中的定义 “Prism”,但找不到它

因此,我们无法在viewmodels上运行任何测试

PCL和NUnit项目使用的是相同版本的.Net、XF和Prism。 我也尝试过不同的版本,包括pre和stable

有人能给我指一下这里的正确方向吗?
在我们更新解决方案之前,NUnit项目进展顺利

可能有点晚了,但我也遇到了同样的问题。我发现我的测试项目.csproj文件引用的是Prism Core的“net45”版本,而所有其他Prism包都引用的是“netstandard2.0”版本。手动编辑并将“net45”更改为“netstandard2.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项目

您是否尝试过删除bin/obj文件夹、重新启动Visual Studio和Nuget包?是的,我尝试过。不幸的是,这并没有解决问题。先生,你真是太棒了!这解决了我的问题。非常感谢干杯,很高兴能帮上忙!非常感谢。这正是你所说的对我有效。我正在使用vs2019,MSTest和Prism v7.1,用于Xamarin.Forms v4.0