【问题标题】:What Non-4.* .NET App Versions play well with Standard?哪些非 4.* .NET 应用程序版本与 Standard 兼容?
【发布时间】:2021-06-20 01:36:22
【问题描述】:

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

我的解决方案中的这个服务项目将依赖于几个类库项目,分别称为 DataLibrary、ComplexLibrary 和 DocLibrary。 DataLibrary 将依赖于 Oracle 的 Nuget 包,无论是 ODP 还是 Oracle 托管数据,以便通过该数据库上的 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 版本,我的 WebAPI 的可用版本(即我不认为标准是类库以外的任何选项)是与 .NET Standard 库兼容吗?

谢谢。

【问题讨论】:

    标签: oracle asp.net-core-webapi .net-5 .net-standard aspose.words


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      好吧,我不觉得自己很傻。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-21
        • 2018-11-19
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多