嵌入vs引用我的依赖:. net / nuget包的最佳实践

本文关键字:最佳 nuget 引用 vs 我的依赖 net 嵌入 | 更新日期: 2023-09-27 18:02:52

我正在提供一个c#/。. NET类库作为NuGet包提供给我公司内的客户。我的库依赖于其他一些第三方库(例如Newtonsoft的优秀的Json.NET)。

我假设NuGet的标准工作方式是我的包只包含对我所依赖的其他NuGet包的引用。当客户端在他们的项目中安装我的NuGet包时,他们的Developer Studio会自动下载它们。

问题# 1:

我可以肯定Developer Studio将下载的版本那些我正在构建的NuGet包,而不是"最新的"版本?

问题# 2:

如果他们的项目也使用第三方库,会导致问题吗我正在使用的(如Json.NET),特别是如果他们使用不同的版本?这只是"工作",还是我需要做些什么?

抱歉,如果这是明确的地方,但我还没能找到这些问题的具体答案。

嵌入vs引用我的依赖:. net / nuget包的最佳实践

这在Nuspec Reference

中有明确的规定专:

指定依赖项

从2.0版本开始,可以根据目标项目的框架配置文件指定包依赖关系。元素包含一组元素。每个组包含零个或多个元素和一个目标框架属性。如果目标框架与项目的框架配置文件兼容,则组内的所有依赖项将被安装在一起。

  <dependencies> 
   <group>
      <dependency id="RouteMagic" version="1.1.0" />
   </group>
   <group targetFramework="net40">
      <dependency id="jQuery" />
      <dependency id="WebActivator" />
   </group>
   <group targetFramework="sl30">
   </group>
</dependencies>

Where version is:

作为依赖项可接受的版本范围。通常这是只是一个代表最低版本的版本号。然而

(update:更新了nuget最新版本的引用)