3

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

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

我已经按照此处的建议启用了包还原并检查了设置,但是在各种程序集引用上仍然有这些黄色警告图标:

参考

比如我之前通过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>
4

4 回答 4

1

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

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

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

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

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

高温高压

于 2015-03-04T20:02:56.227 回答
0

我手动删除了所有旁边带有黄色标记的引用,然后将它们一一添加回来。这样,他们也开始出现了packages.config

我认为他们之前没有显示的原因packages.config是因为我在开发后期打开了 [Restore nuget packages] 选项。如果我一开始我的项目就这样做了,我相信他们会出现在packages.config.

PS。我在 nuget 的网站上进行了搜索,以了解该包是否在 nuget 上可用,或者它是否是一个框架程序集。

于 2015-03-06T08:53:08.843 回答
0

您需要使用以下命令重新安装项目中的所有包:

Update-Package -ProjectName MyProject -Reinstall
于 2015-10-26T09:21:49.647 回答
0

在包管理器控制台中,选择您的默认项目

然后

Update-Package -reinstall
于 2019-02-22T20:52:25.383 回答