2017-01-09 54 views
0

我有一个包的依赖情况如下: 错误:为什么我的依赖软件包没有解决?

试图收集依赖信息包“PkgB.2.0.414”相对于项目的测试NuGet包使用方法“,定位” .NETFramework,版本= v4.5' 尝试使用DependencyBehavior'Lowest'解决程序包“PkgB.2.0.414”的依赖关系 无法解析依赖关系'PkgC.1.0.0'。使用的源代码:'nuget.org','公司包源代码','本地测试','Microsoft和.NET','Microsoft Visual Studio Offline Packages'。

形势答: PkgA => PkgC

情况B: 则pkgB => PkgA => PkgC

当我安装情况的它的工作原理。当我安装情况B它的作品。但是,如果我安装A然后B它即使已经安装并且工作正常但未能找到Pkg C.

请记住以下环境:

这些都是安装精细各自分别所有软件包。 这个问题只有发生在使用NuGet饲料服务器。 我没有使用包共享作为安装源的问题。

来源: 我看过NuGet文档的版本和最近的算法,但我不明白我会违反它。

https://docs.nuget.org/ndocs/consume-packages/dependency-resolution#dependency-resolution-in-nuget-3-x

而且我没有看到指定的版本如何要么关系。 https://docs.nuget.org/ndocs/create-packages/dependency-versions#dependency-versions

我自己的结论:

好像问题是饲料服务器和它是如何发现的依赖关系。我正在看git上的NuGet.Server源码,但还没有注意到任何东西。我最终可能会放弃源代码并找出它。

不管这种情况如何,不管饲料来源的类型如何?

编辑:

这是一个私人的NuGet饲料和私人nugets不在,我可以公开分享任何回购协议。

我在这里引用的版本> =表示法来构建参考树。

<!-- Accepts any version 6.1 and above --> 
<dependency id="ExamplePackage" version="6.1" /> 
+0

PkgA,PkgB和PkgC是所有的依赖包还是它们之间有一些依赖关系?如果可能的话,请在这里分享这些软件包(不是您的nuget feed)以帮助我们重现此问题。 –

+0

Wendy我列出了上面的依赖关系,但我没有具体说明它们是依赖关系。情况A:PkgA => PkgC情况B:PkgB => PkgA => PkgC是依赖线以及安装情况。 –

回答

0

它看起来就像是的NuGet高速缓存的组合是本地。

我执行以下命令清除它们。

VS2015不断抱怨安装相同的软件包版本,因为我一直在1.0.0.0版本和1.0.0版本之间乱搞,这是有道理的。

https://docs.microsoft.com/en-us/nuget/consume-packages/managing-the-nuget-cache

我发出的每个命令,并重新启动能够完全清空缓存。它现在可以工作,我不再会遇到问题。

+0

感谢您在此处分享您的解决方法。请稍后标记您的答案。对于有同样问题的其他社区是有益的。 –

0

我同意你的看法,“这种情况不管饲料来源的类型如何”。

对于安装A和B,它会失败:请确认情况B中的Pkg A,Pkg C的依赖版本的约束是否与情况A一致。如果依赖性Pkg A,Pkg C与情况A中的高版本先安装,然后安装具有较低版本依赖性的情况B,则安装将失败。同样的问题:Is there an OData dependency graph somewhere

对于供稿源:请检查NuGet供稿服务器中的Pkg A和Pkg B的包版本是否与Share包文件夹一致。

如果这个问题仍然存在,只是分享我们的NuGet包ID,我会瑞普它在我的身边:)