安装的nuget软件包缺少文件

时间:2019-10-16 18:12:37

标签: c# nuget nuget-package

我在我的项目中使用了一个nuget,它在版本0.10.4中应该具有一个名为ChartJs.Blazor.ChartJS.Common.Time的命名空间。由于某种原因,它告诉我命名空间不存在。我100%肯定会这样做,原因如下:

  • 我发表了自己的话并进行了测试。
  • nuget.org下载nuget并通过7-zip打开检查nupkg文件时,我可以在文件夹lib中找到用于nuget的dll。如果我将该dll复制到nupkg之外并直接引用(而不是nuget),那么它一切正常,并且代码可以编译。
  • 我还用ILSpy查看了dll(如上所述),并可以确认名称空间及其文件确实存在。

绝对没有迹象表明这些文件不存在。

由于我使用相同的软件包版本进行了一些手动测试,但是软件包内容实际上不同,因此我怀疑存在缓存问题。但是,我已经尝试了一些可以帮助我解决类似问题的方法,但是这次都没有效果:

  • 删除%userprofile%\.nuget\packages中的相应文件夹
  • 删除所有binobj(和.vs)文件夹。
  • 删除所有临时文件(使用内置的Windows工具)

仅供参考,%appdata%/NuGet没有兴趣。

有人知道这个问题可能是什么以及如何解决?当前的解决方法是直接包含dll,但这并不好。

Ps。已安装的NuGet版本为5.1.0.6013,但我通常只使用集成了nuget的Visual Studio 2019。

编辑:
通过nuget使用的库的目标是netstandard2.0(标准库)。消耗项目的目标是netcoreapp3.0(asp.net核心ss-blazor)。仅此一项就不成问题。

1 个答案:

答案 0 :(得分:0)

这确实是一个缓存问题-很遗憾,有这么多时间浪费在这么简单的事情上。即使我以为我清除了所有缓存,但还是错过了几个文件夹(为什么nuget使用那么多文件夹?)。解决方案是使用nuget locals all -clear清除 all 个缓存,这在this answer中也有描述。

孩子们,请清除缓存。