【问题标题】:Type or namespace could not be found AFTER Package is restored恢复包后找不到类型或命名空间
【发布时间】:2015-04-14 18:56:18
【问题描述】:

当我们使用 TFS 时,我们的 nuget 包确实遇到了这个错误。一个团队成员会添加一个包,当我们拉它时不可避免地会找不到它。过去,我们手动添加了包,但我们偶然发现了包还原!这是一个很棒的工具,但它似乎并不总是像我期望的那样工作。

当简单的“启用包还原”和重建无法解决问题时,我一直在采取这些步骤。

  1. 从解决方案中删除 Nuget 和 Packages 文件夹。
  2. 重启 Visual Studio
  3. 清洁解决方案
  4. 重建解决方案

现在,这让我获得了大约 90% 的软件包,但仍有一些无法解决。奇怪的是,我查看了 packages 文件夹,发现在构建/重建后安装了丢失的包,即使它仍然显示它丢失了。

那么,除非有更好的方法让它们自动恢复,有没有办法强制它查看包位置?

【问题讨论】:

  • 有任何特定的版本要求吗?
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • @DanielA.White VS 2013,我在底部添加了该标签。谢谢约翰桑德斯
  • 我的意思是软件包名称是否为特定版本?
  • @DanielA.White 在哪里可以看到命名版本?我必须在nuget中手动查找吗?

标签: asp.net visual-studio-2013 nuget-package-restore


【解决方案1】:

这个我也看到过,但是很久以前我不记得是怎么解决的了。

我会仔细检查项目中列出的特定版本是否与下载到包中的版本完全匹配。没有对程序集应用提示路径或其他魔法,它们在 web/应用程序配置中以某种方式被覆盖,以查看其他地方或不同的,现在缺失的值。

【讨论】:

  • 在哪里查看版本不兼容问题?
  • 该包包含程序集,您可以在参考资料中查看这些程序集并查看版本。然后在包文件夹本身中,深入 lib 文件夹以在那里找到匹配的程序集。然后,您可以右键单击,查看属性并查看版本。他们应该匹配
  • 在引用中,它们都显示为缺失(黄色,三角形感叹号)。多个项目都会发生这种情况。
  • 所以诀窍是找到应该缺少程序集的包,然后比较这些程序集的版本(如果存在)。第一步是在包文件夹中进行简单的 Windows 资源管理器搜索。我之前的评论解释了如何比较版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 2018-02-09
  • 2013-03-25
  • 2017-07-12
  • 2011-05-13
  • 2021-03-01
相关资源
最近更新 更多