1

RavenDb 最新版本安装为 nuget 包。它引用了 Newtonsoft.Json 4.0.2。我正在尝试安装 TweetSharp。我得到这个日志:

M> Install-Package TweetSharp
Attempting to resolve dependency 'Hammock (≥ 1.2.3)'.
Attempting to resolve dependency 'Newtonsoft.Json (≥ 4.0.1)'.
Successfully installed 'Hammock 1.2.6'.
Successfully installed 'Newtonsoft.Json 4.0.3'.
Successfully installed 'TweetSharp 2.0.8'.
Install failed. Rolling back...
Install-Package : Updating 'Newtonsoft.Json 4.0.2' to 'Newtonsoft.Json 4.0.3'
   failed. Unable to find a version of 'RavenDB-Embedded' that is compatible with
   'Newtonsoft.Json 4.0.3'.

如您所见,即使 TweetSharp 只需要“Newtonsoft.Json (≥ 4.0.1)”,nuget 也希望安装无法与 RavenDb 一起使用的 4.0.3 版本。

我尝试安装以前版本的 TweetSharp,但它并没有改变任何东西。

有什么办法可以规避这个?

4

2 回答 2

1

这取决于 NuGet 自(我认为)1.6 以来的语义版本控制。此处对其进行了更详细的解释,但基本思想是,如果您的依赖项尚未更新主要或次要修订号,那么他们将假定这是一个错误修复而不是重大更改。

所以在这种情况下,决定安装 4.0.3 而不是 4.0.1。

您可以使用 -ignoredependencies 运行 install-package 我原以为如果您安装了 4.0.2,它不会尝试更新您(因为 4.0.2 满足依赖关系)。

于 2012-01-27T17:48:02.153 回答
1

听起来像是 NuGet 中的一个可能的错误。请在 NuGet 错误跟踪器中记录问题:http: //nuget.codeplex.com/workitem/list/basic

如果 TweetSharp 与 NewtonSoft.Json 4.0.2 兼容,那么安装应该不会失败。在您的错误中,您能否发布导致此问题的确切版本。例如:

安装了确切版本的已安装软件包列表。每个包的依赖项列表以及它们指定的特定版本范围。以及您尝试安装的 TweetSharp 的确切版本。这将帮助我们更快地看待这个问题。谢谢!

我的猜测是我们有一些默认逻辑会尝试将软件包升级到最新的错误修复版本。在这种情况下,我们尝试过,但它会导致另一个依赖项失败。在那种情况下,我们应该知道这一点,而不是尝试升级。

于 2011-10-26T23:07:45.470 回答