[英]Add Reference to dll vs. adding a NuGet package in .NET Standard project
我的解决方案中有一个.NET Standard 2.0项目,我正在使用IConfiguration接口。 当我写名称VS建议我引用Microsoft.Extensions.Configuration.Abstractions.dll。 如果我这样做,则添加在参考节点下。 但是我也可以将它添加为NuGet包。 两种方式似乎都有效。 我假设参考VS建议是通过项目中引用的.NET Standard SDK添加的。
添加该引用的推荐方法是哪种? 每种方法有哪些优点和缺点?
直接从手动下载的NuGet包引用DLL,或者安装在已知位置,可以加快恢复和构建过程,但存在一些危险。
当引用DLL文件时,NuGet包可以执行许多操作。 如果要从包中引用DLL,请确保该包不会执行以下/ account之一以实现以下可能性:
ref/
文件夹中提供“API表面”dll,然后在其lib/
包含.NET Framework .NET Core,Xamarin等的不同实现程序集。 夹。 您必须小心选择正确的DLL文件以引用项目类型 - .NET标准库可能需要引用ref-assembly(例如ref/netstandard1.4/foo.dll
在编译期间和.NET Framework使用此库的应用程序需要从lib/net452/foo.dll
引用程序集。 .dll
,Linux上的.so
等 - 来自runtime/
子文件夹)或任何内容文件。 在没有NuGet的情况下实现这一点很棘手,因为.nuspec
文件还可以定义内容文件的构建操作。 .csproj
文件,则无法手动执行此操作。 如果NuGet包不使用上述任何一个(您需要手动检查),则通常可以安全地引用DLL。 但是,更新DLL及其依赖项是很多工作,使用NuGet更容易。
此外,您提到您直接从.NET Core工具中的nuget fallback文件夹引用。 此文件夹不保证在其他安装中包含DLL的特定版本(取决于安装的SDK版本),甚至可能安装在不同计算机上的不同位置,使您的项目文件无法用于其他工作人员(以及在非Windows机器上构建)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.