所以我有一个.NET Core 3.1
项目。我正在尝试创建一个与之配套的单元测试项目。我为此创建了一个.NET Standard 2.1 Class Library
。然后,我试图添加对主项目的引用,以便能够从那里引用代码。这不起作用,因为出现以下编译错误:
'.. \ MyProj \ MyProj.csproj'目标为'netcoreapp3.1'。它不可能是 由以“ .NETStandard,Version = v2.1”为目标的项目引用。 Project MyProj与netstandard2.1不兼容 (.NETStandard,Version = v2.1)。 MyProj项目支持:netcoreapp3.1 (.NETCoreApp,Version = v3.1)测试(test \ Test)
因此,这对我来说确实很有意义,因为我了解到为什么.NET Core
无法引用.NET Standard
项目。
那么我该如何创建单元测试项目呢?是否可以创建.NET Core 3.1 Class Library
?从我阅读的所有内容来看,似乎并不存在。
如何设置引用主项目的单元测试项目?
答案 0 :(得分:4)
.NET Standard被创建为不同.NET实现的接口。例如,这使您可以在.NET Core和完整的.NET框架之间共享代码。我会将您的库创建为.NET Standard 2.0项目,然后可以在.NET Core 3.1应用程序和单元测试项目中引用它。
我只建议使用.NET Standard,因为它通常比.NET Framework或.NET Core库具有更高的可移植性。您可以使用.NET Standard定位更多平台,例如Xamarin,桌面或Web。
答案 1 :(得分:0)
我认为您只需要在项目中使用.Net Core 3.1,而不是NetStandard。我用这种方式,没有麻烦。我想您真的不需要单元测试即可移植吗?