在.NET 4.8中引用.NET Core 3.0库?

6

1
“nothing seems to be working” 不是一个问题。请问您的代码预期的行为是什么?它实际上的行为又是什么? - vasily.sib
当然,我正在尝试在我的.NET Framework项目中引用我所说的库。由于.NET Core跨平台兼容,我的目标是在我的.NET 4.8项目中使用该库。@vasily.sib - TheRealVira
好的,当您尝试遵循您提供的其中一个链接的建议时,会发生什么? - vasily.sib
1
是的,但.NET Core比.NET Framework前进得更快。如果您想从两者引用库,则库应为.NET Standard,而不是Core,而Standard无法匹配Core中所能做的事情。 - Damien_The_Unbeliever
8
.NET Core和.NET Framework是不同的框架;我不会期望这个工作;如果你想要一个可从两者中使用的库,据我所知,它需要多目标(即具有.NET Core和.NET Framework目标),或者以.NET Standard为目标。或者,为了涵盖所有基础:多目标包括所有三个(.NET Core、.NET Framework、.NET Standard)- 当您可以利用特定于框架的功能时很有用,同时.NET Standard作为最常见的回退选项。 - Marc Gravell
1个回答

1
如Marc Gravell所提到的,.NET Core和.NET Framework是不同的框架。它们各自提供的Api Surface也不同。一个好的方式来描绘它们的表面积是使用Venn图,其中两者的交集是我们所称的.NET Standard。如果你使用的库是针对.NET Standard的,则可以保证在.NET Framework 4.8和.NET Core 2.1+中都可以工作。你可以尝试在.NET Framework应用程序中使用.NET Core 3.0库,但不能保证能够正常工作,因为你可能会很幸运,你的.NET Core库只需要它们共有的API Surface,但很可能它需要一些仅支持.NET Core 3.0的东西,这意味着你将会得到方法未找到、类型未找到或装配加载问题的运行时异常。
你是否拥有.NET Core库代码?如果是的话,最好的选择是尝试重新定向到.NET Standard(以便将来可以在其他框架中使用该库)或直接定向到.NET Framework,这样你就知道你的库所需的所有API Surface都将在运行时出现。
我希望这有助于澄清问题,但如果你想要更多细节,请随时回复。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接