【问题标题】:Installed nuget package is missing files安装的 nuget 包缺少文件
【发布时间】:2019-10-16 18:12:37
【问题描述】:

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

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

绝对没有任何地方没有这些文件的迹象。

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

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

仅供参考,%appdata%/NuGet 没有任何有趣的内容。

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

附言。安装的 NuGet 版本是5.1.0.6013,但我通常只使用集成了 nuget 的 Visual Studio 2019。

编辑:
通过 nuget 使用的库的目标是 netstandard2.0(标准库)。消费项目的目标是netcoreapp3.0(asp.net core ss-blazor)。仅此一项不应该成为问题。

【问题讨论】:

  • 这是你的图书馆吗?这可能是因为对 Microsoft.AspNetCore.Components.Web 的依赖可能需要使用 FrameworkReference 而不是 Package 引用。结帐docs.microsoft.com/en-us/aspnet/core/migration/… 以进行多目标
  • 是的,这是我的图书馆。这是一个缓存问题(怀疑)。我添加了一个答案来清除它,但还不能接受:/

标签: c# nuget nuget-package


【解决方案1】:

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

清除缓存,孩子们。

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2013-11-11
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多