防止Nuget下载最新版本的依赖项

时间:2014-09-28 09:27:54

标签: .net visual-studio-2010 nuget

我使用Nuget下载特定版本的 CouchbaseClient ,这是一个NoSql产品的.Net客户端。

这个dll在Newton.Json中有一个依赖,所以这就是使用Nuget时发生的事情:

Install-Package CouchbaseNetClient -Version 1.3.6
Attempting to resolve dependency 'Newtonsoft.Json'.
Installing 'Newtonsoft.Json 6.0.5'.
Successfully installed 'Newtonsoft.Json 6.0.5'.
Installing 'CouchbaseNetClient 1.3.6'.
Successfully installed 'CouchbaseNetClient 1.3.6'.
Adding 'Newtonsoft.Json 6.0.5' to DataAccess.
Successfully added 'Newtonsoft.Json 6.0.5' to DataAccess.
Adding 'CouchbaseNetClient 1.3.6' to DataAccess.
Successfully added 'CouchbaseNetClient 1.3.6' to DataAccess.

问题是,当我运行单元测试时,抛出异常,它正在寻找Newton.Json版本4.5.0。

所以,我需要手动删除Nuget为我下载的Newton.Json 6.0.5,并添加了Nuget Newton.Json 4.5.0。

有更简单的方法吗? 每次我下载一个包含非最新版本依赖项的软件包时,我都不想这样做。

1 个答案:

答案 0 :(得分:2)

您的选择是:

  1. 在app.config中为Newtonsoft.Json添加绑定重定向,以便将4.5重定向到6.0.5。
  2. 在您的packages.config中添加constraint以限制Newtonsoft.Json包版本。
  3. 安装更新的NuGet版本(2.5或更高版本)。
  4. 使用-DependencyVersion parameter更改Install-Package的默认行为。
  5. 使用所需的NuGet包创建项目模板并重复使用。
  6. 如果已经安装了Newtonsoft.Json 4.5.11,那么CouchbaseNetClient将不会安装更高版本,除非您没有安装Newtonsoft.Json或者您使用的是旧版本的NuGet(早于NuGet 2.5)。