嵌入vs引用我的依赖项:.NET / NuGet包的最佳实践?

时间:2015-07-16 04:03:46

标签: c# .net visual-studio nuget

我为我公司内的客户提供了一个C#/ .NET类库作为NuGet包。我的图书馆依赖于其他一些第三方图书馆(例如Newtonsoft's excellent Json.NET)。

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

问题#1:

  

我可以确定Developer Studio会下载版本的   那些我正在构建的NuGet包而不是最新的'   版本

问题#2:

  

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

如果在某处拼写出来,请道歉,但我无法找到这些问题的具体答案。

1 个答案:

答案 0 :(得分:4)

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>

版本是:

  

作为依赖项可接受的版本范围。通常这是   只是一个代表最低版本的版本号。 然而a   支持更明确的version range syntax

更新:更新了对更新版nuget的更新参考资料)