微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在构建一个 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 库兼容?

谢谢。

解决方法

请参阅以下文章 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 的下一个版本)

,

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。