如何在.Net Core项目和.Net Framework 4.5项目之间共享类?

问题描述:

我正在开发一个需要使用Navisworks .Net API(4.5)和ASP.NET Core的项目。我想分享这两个类型之间的一些类型,但是我创建一个以.Net Core 1.0和.Net Framework 4.5为目标的可移植库的试用版,并且从其他项目引用此库失败。 Navisworks API不喜欢它,它会抛出一个异常,我无法获得详细信息。如何在.Net Core项目和.Net Framework 4.5项目之间共享类?

有什么我想要实现的解决方案?

.Net Framework 4.5 supports .Net Standard 1.1(以及更新版本的.Net Framework支持.Net标准的更新版本),因此创建.Net Standard 1.1库应该适合您。

尽管我认为从csproj项目引用project.json项目存在问题,因此您可能必须将该库作为NuGet包使用。

其他选项:

  • 如果你想使用ASP.NET的核心,但并不需要对.NET核心(即你没事带是仅Windows),你可以让你的库。仅限Net Framework,并在.Net Framework之上构建ASP.NET Core应用程序。
  • 如果您可以使用相当不稳定的软件,您可以使用Visual Studio 2017 RC,它使用.Net Core SDK Preview3创建基于csproj的.Net标准库。这应该会使您的.Net Framework项目更轻松地进行交互。
+0

感谢您的回复。我如何创建.Net标准1.1项目? Visual Studio似乎正在创建Net Standard 1.6项目,我无法更改它 – Hasan

+1

创建一个.Net Standard 1.6项目并编辑project.json,以便它使用'netstandard1.1'框架(但保留对“NETStandard”的引用.Library'为1.6)。然后恢复软件包,它应该工作。 – svick

+0

谢谢svick。我应该保留“进口:dnxcore50”的一部分? – Hasan