【问题标题】:Why is my dependent package not resolved?为什么我的依赖包没有解析?
【发布时间】:2017-01-09 16:31:34
【问题描述】:

我有一个包依赖情况如下: 错误:

尝试收集包“PkgB.2.0.414”与项目“test Nuget Package Usage”相关的依赖信息,目标是“.NETFramework,Version=v4.5” 尝试使用 DependencyBehavior 'Lowest' 解决包 'PkgB.2.0.414' 的依赖关系 无法解析依赖项“PkgC.1.0.0”。使用的源:“nuget.org”、“公司包源”、“本地测试”、“Microsoft 和 .NET”、“Microsoft Visual Studio 离线包”。

情况 A: PkgA=>PkgC

情况 B: PkgB=>PkgA=>PkgC

当我安装情况 A 时,它可以工作。当我安装情况 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 源代码,但还没有注意到任何内容。我可能最终会找出源头并弄清楚。

这种情况不应该不管 Feed 源的类型都有效吗?

编辑:

这是一个私人 nuget 提要和私人 nuget,它们不在我可以公开分享的任何存储库中。

我使用这里引用的版本 >= 表示法来构建整个情况的参考树。

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

【问题讨论】:

  • PkgA、PkgB、PkgC都是依赖包还是它们之间有一些依赖关系?如果可能,请在此处分享这些包(不是您的 nuget 提要)以帮助我们重现此问题。
  • Wendy 我在上面列出了依赖项,但我没有具体说明它们是依赖项。情况A:PkgA=>PkgC 情况B:PkgB=>PkgA=>PkgC 是依赖行,也是安装情况。

标签: .net visual-studio-2015 nuget nuget-package


【解决方案1】:

我同意您的观点,即“无论 Feed 源的类型如何,这种情况都有效”。

安装A则B失败:请确认情况B的Pkg A,Pkg C的依赖版本约束是否与情况A一致。如果情况A的依赖Pkg A,Pkg C高版本安装先安装低版本依赖的情况B,安装会失败。同样的问题:Is there an OData dependency graph somewhere?.

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

如果此问题仍然存在,只需将 NuGet 包 ID 分享给我们,我将在我身边重现它:)

【讨论】:

    【解决方案2】:

    看起来是Nuget本地缓存的组合。

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

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

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

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

    【讨论】:

    • 感谢您在此处分享您的解决方法。请稍后标记您的答案。这对有同样问题的其他社区有好处。
    猜你喜欢
    • 2013-05-07
    • 2022-01-15
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多