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

How to Share Classes Between .Net Core project and .Net Framework 4.5 Project?

我正在从事一个需要使用 Navisworks .Net API (4.5) 和 ASP.NET 核心的项目。我想在这两者之间分享我的一些类型,但我尝试创建一个针对 .Net Core 1.0 和 .Net Framework 4.5 的可移植库并从其他两个项目引用它失败了。 Navisworks API 不喜欢这样,它抛出了一个我无法获得详细信息的异常。

是否有针对我想要实现的目标的解决方案?

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

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

其他选项:

  • 如果你想使用 ASP.NET 核心,但不需要 .Net 核心(即你可以接受 Windows-only),你可以将你的库制作为 .Net Framework仅在 .Net Framework 之上构建您的 ASP.NET 核心应用程序。
  • 如果您不介意使用相当不稳定的软件,可以使用 Visual Studio 2017 RC,它使用 .Net Core SDK Preview3 创建基于 csproj 的 .Net 标准库。这应该会使与 .Net Framework 项目的交互更容易。