visual-studio-2013 - 解决方案资源管理器中程序集引用的黄色警告图标/字形

标签 visual-studio-2013 nuget assembly-references packages.config

我正在使用 NuGet 来管理依赖项。

我为我的解决方案创建了一个新的 Git 克隆,并注意到程序集引用问题。

我启用了包恢复并检查了设置 as suggested here ,但我在各种程序集引用中仍然有这些黄色警告图标:

references

例如,我之前通过NuGet添加了AutoMapper,那么为什么它在这里坏了,为什么它没有显示在我的packages.config中:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="bootstrap" version="3.0.0" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.1" targetFramework="net45" />
  <package id="jQuery" version="1.10.2" targetFramework="net45" />
  <package id="Modernizr" version="2.6.2" targetFramework="net45" />
</packages>

最佳答案

这通常意味着您在项目中的引用引用了一个在磁盘上找不到的程序集。要纠正此问题,最直接的解决方案是注意存在哪些引用,删除它们,然后重新添加它们。由于您使用 NuGet 来管理依赖项,因此您的工作要容易得多,您只需:

  1. 删除所有 NuGet 包(使用“包管理器”)
  2. 删除整个解决方案中任何挥之不去的损坏程序集引用
  3. 将 NuGet 包重新添加到所有需要它们的项目(再次使用包管理器)

根据您的描述,听起来好像有些项目没有添加 NuGet 包,并且这些程序集可能是由开发人员从 NuGet 包文件夹中“交叉引用”的。这是个错误。相反,必须将 NuGet 包添加到依赖于这些包的所有 项目。 (例如,您永远不会发现自己手动添加对 AutoMapper 的程序集引用,因为它是由 NuGet 为您管理的。)

有时会出现错误,这些错误会出现在 nuget 获取之前,并且在解决方案资源管理器中选择引用节点会导致叠加字形(黄色警告符号)自行删除(这意味着引用在加载后解析,通常通过'包恢复'。)

这通常是由于项目作者在非标准位置创建了对程序集的不正确/直接引用,因此包恢复不会解决引用问题,并且引用通常会在包更新后中断。

HTH

关于visual-studio-2013 - 解决方案资源管理器中程序集引用的黄色警告图标/字形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863013/

相关文章:

c# - Nuget 返回意外状态代码 '404 Not Found' - 本地驱动器上的包

.net - VB.NET 在运行时确定项目的导入命名空间

.net - 是否有与ilmerge相反的实用程序?

c# - 找不到“var”

c++ - Visual Studio 项目设置中的多个相对父目录

c# - 在 Visual Studio 2013 中访问抽象语法树

visual-studio-2013 - Visual Basic 2013 在 Release 中加载程序集引用,但在 Debug 中不加载

windows - VS 2013内核模式驱动程序调试

visual-studio - 升级 Nuget 应用程序时出现问题 - 数字签名不匹配

nuget - 如何查看 Nuget Feed 的 URL?