哪些非 4.* .NET 应用程序版本与 Standard 兼容?

What Non-4.* .NET App Versions play well with Standard?

我正在构建一个 MVC Web API(服务),在特定情况下会返回视图。作为架构决策,我被指示不要在 .NET Framework 4.* 中构建服务项目。相反,我将首先尝试 .NET 5.0,如果 5.0 不起作用,然后再尝试 Core 3.1。

我的解决方案中的这个服务项目将依赖于几个 class 库项目,将它们称为 DataLibrary、ComplexLibrary 和 DocLibrary。 DataLibrary 将依赖于 Oracle 的 Nuget 包,无论是 ODP 还是 Oracle Managed Data,以便通过该数据库上的 Oracle 包查询 Oracle 数据库。 DocLibrary 将依赖于 Aspose Word 和 Aspose PDF 的 Nuget 包。 ComplexLibrary 将依赖于 Oracle 和 Aspose。

这是我的困境:

  1. Aspose Word 的最新稳定版本 (21.6) 将报告它与 5.0 和 Standard 2.0 兼容,但不兼容 .NET Core。
  2. Oracle Managed Data 报告它与 Standard 2.1 或 Standard 2.0 兼容,但与 5.0 或 .NET Core 不兼容。
  3. 我自己的库报告它们与我的 API .csproj 不兼容,如果...

3a。 API 是 5.0,库是 .NET Core 或 .NET Standard

3b。 API 是 Core 3.1,库是 .NET Standard。

由于我的编译脚本自然需要 运行 Nuget 来检索所有必要的依赖项,因此我无法进行干净的编译,因为我似乎没有适合我的 WebAPI 和库的版本组合满足彼此的兼容性需求。由于标准库是唯一满足 Aspose 和 Oracle 需求的通用 .NET 版本,我的 Web 有什么可用版本API(即我不认为标准是任何选项除了 class 库)是否与 .NET Standard 库兼容?

谢谢。

请看下面文章https://docs.microsoft.com/en-us/dotnet/standard/net-standard。 .NET Standard 不是一个框架,它是一种规范,.NET Core、.NET 5、Mono 框架等都是 .NET Standard 实现。 因此,对于库项目,我将 select .NET Standard 和服务 .NET Core 或 .NET 5(实际上是 .NET Core 的下一个版本)

嗯,我不觉得很傻吗

事实证明,问题不是 Aspose、Office、.NET Core、5.0 和 Standard 之间的不兼容性,而是早期版本的 NuGet 无法处理不同版本。

虽然我的 VS 2019 安装能够有效地编译整个解决方案,但我的 NuGet 本地安装却不能。这是因为 VS2019 可能使用的是 post (5.9.#) 的最新版本,而我本地安装的版本是 4.9.# .因此,当我的编译脚本在 NuGet 阶段(我在实际编译之前已经包括在内)一直失败时,VS 能够顺利通过。一旦我 运行 一个 NuGet 更新,一切都很好。

长话短说:让您的 NUGET 版本保持最新!!!