从.Net标准类库引用.Net Core 3.1项目

时间:2020-01-09 18:32:35

标签: c# .net unit-testing .net-core .net-standard

所以我有一个.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?从我阅读的所有内容来看,似乎并不存在。

如何设置引用主项目的单元测试项目?

2 个答案:

答案 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。我用这种方式,没有麻烦。我想您真的不需要单元测试即可移植吗?