【问题标题】:nuget not resolving dependency using what specified in nuget package for Microsoft.Extensions.Loggingnuget 没有使用 nuget 包中为 Microsoft.Extensions.Logging 指定的内容解决依赖关系
【发布时间】:2020-03-15 22:29:26
【问题描述】:

背景:

我已经为 .net core 创建了一个类库(目标 v2.2),我也有一个 .net core 应用程序(目标 v2.2)。

我正在尝试将库导出为 nuget 包并将其安装在我的应用程序中。 这是我的库的依赖项

我可以将它导出为 nuget 包,现在我将它存储在本地 nuget 存储库中。 但是当我尝试在我的应用程序中安装这个库包时,由于Microsoft.Extensions.Logging 的包版本冲突,它没有被安装。这是包管理器控制台输出。

问题:

我已经为Microsoft.Extensions.Logging 指定了确切的版本,即[2.2.0],因为我们可以在屏幕截图中确认我的库的依赖关系,那么为什么它会被解析为版本3.0.0? 我该如何解决这个问题?

环境详情:

  • 使用的 NuGet 产品(包管理器控制台):包管理器控制台主机版本5.3.1.6268
  • VS 版本(如果适用):Microsoft Visual Studio Community 2019 版本16.3.8
  • 操作系统版本(即win10 v1607 (14393.321)):Windows 10 企业版:1809

【问题讨论】:

  • 我已经创建了一个包,就像你所做的那样,然后将它安装在初始的 net core 2.2 应用程序中,发现没有任何问题。我猜你已经安装了其他依赖于Microsoft.Extensions.Logging 3.0的nuget包。请检查一下。此外,如果可能,请分享 nuspec 文件(如果使用)、csproj 文件或其他 nuget 包(如果使用)。
  • 我认为,如果您之前安装了具有不同内容的软件包,则需要在安装该软件包之前清理 nuget 缓存!因为你的包的一个副本存储在 nuget 缓存中。
  • 嗨朋友,这个问题有什么更新吗?请检查我的回答是否有帮助,请参阅what should...。只是一个提醒:)

标签: c# visual-studio .net-core nuget nuspec


【解决方案1】:

我该如何解决这个问题?

要解决您身边的奇怪行为,您应该在当前项目中安装该软件包之前clean the nuget cache

(为了确保缓存被清理,建议你去%userprofile%\.nuget\packages检查Packages文件夹中是否存在Com.lib文件夹)

我已经指定了 Microsoft.Extensions.Logging 的确切版本 即 [2.2.0] 我们可以在屏幕截图中确认 我的库的依赖项,那么为什么它被解析为版本 3.0.0?

我认为您要安装的(Com.Mylib)不是您打包的第一个。我的意思是,您实际上可能会构建和打包几个具有不同内容的不同 Com.Mylib 包。他们所有的名字都是Com.lib.1.0.0.nupkg

Nuget 将所有 nuget 缓存存储在 %userprofile%\.nuget\packages 中。因此,如果我曾经在任何项目中安装一个 PackageA。 PackageA 的缓存存储在那里。如果我打开一个新项目尝试安装具有相同版本 (1.0.0) 的 PackageA,它实际上会从缓存中安装一个。所以我们会遇到这种奇怪的行为:

Nuget 可以识别 Com.lib 包依赖于其他 2.2.0 包。但是当它尝试安装该软件包时,它发现该软件包已存在于缓存中。然后他尝试从缓存中安装一个,我猜缓存中的内容和你最新的不一样,然后问题就出现了。

建议:

1.在本地开发时,使用项目引用而不是Nuget包。

2.如果每次打包后都需要测试nuget包,请确保包版本已经增加。(1.0.0=>1.0.1=>1.0.3...或beta-1.0.12 , 预览-xxx)

3.如果您有特殊原因请使用相同的1.0.0版本,请clean the cache以避免以前的缓存影响当前项目。

希望以上所有帮助:)

【讨论】:

  • 非常感谢@Lance Li-MSFT,删除 nuget 缓存解决了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 2016-10-16
相关资源
最近更新 更多