在 .net core 中添加引用的正确方法是什么 - 程序集或 nuget?



问题:我在一个.NET Core 2.1库中引用IconFiguration接口,该库将在Linux Docker容器

中运行

Visual Studio 2019自动提供为我添加汇编参考。如果我接受,它引用了Microsoft.extensions.configuration.abstractions.dll我的程序文件目录中的

但是,我看到此DLL在线也有一个Nuget Packager。

很容易说" Just Trust Visual Studio",但是我之前遇到了.NET框架(或Resharper(时会尝试添加汇编参考的.NET框架的问题需要添加的软件包。

我是一个带.NET的长时间,只是拿起.NET核心。在这种情况下,正确的约定是什么?

.net core的设计,其包装参考作为参考依赖项的标准方法。但是,该设计选择的原因有几个,但是,主要的是允许在多个OS和ARCH目标上运行代码。因此,创建依赖性的推荐方法是使用软件包参考。它将允许获取与给定的OS和CPU组合相关的软件包。

例如,您可以使用Windows,Linux和MacOS以及MacOS X64体系结构的Linux和Windows X64和ARM64体系结构进行定位。项目参考软件包将选择操作系统和处理器体系结构的给定组合适当的软件包,即在SQLite的情况下,它将是Win-X64,Win-ARM64,Linux-X64,Linux-ARM64,MacOS-X64软件包版本。.NET核心软件包和运行时间也是如此,这将根据目标平台和目标体系结构的组合选择。处理所有这些组合的一般概念是由目标框架绰号抽象的,除了处理操作系统和体系结构信息外,还允许处理版本依赖性信息。

上面的所有内容都是一个基本概念,用于理解在项目系统中也实现的.NET核心中版本控制和OS/架构依赖性处理。在您的情况下,尽管Visual Studio提出的建议通常并非总是可以正常工作,但您应该始终选择Nuget软件包而不是组装参考。为了验证这一点,可以检查github上的dotent/project-system存储库中关闭或仍在打开的问题的数量。

最后,尽管引用纯IL组件将起作用,但这不是将来的证据,因为依赖关系的任何变化都使其平台或架构具有特定的(即使用.NET Core HW固有的特定优化(会破坏您的项目。<<<<<<<<<<<<<<<<<<<<<<<<

最新更新