【问题标题】:.Net Framework You must add a reference to assembly mscorlib, Version=4.0.0.0.Net Framework 您必须添加对程序集 mscorlib 的引用,版本 = 4.0.0.0
【发布时间】:2019-03-26 20:50:49
【问题描述】:

更新并包含一些 NuGet 包后,我现在收到许多类似以下的编译错误:

“对象”类型是在未引用的程序集中定义的。您必须添加对程序集 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的引用

我查看了You must add a reference to assembly mscorlib, version=4.0.0,但我没有运行 .Net core - 这是一个 ASP.NET MVC、.Net Framework 4.7.2 项目。

没有要更新的 project.json。我已经包含了 Microsoft.NETCore.Portable.Compatibility NuGet 包,但没有效果。

这是什么原因造成的,我该如何解决?

【问题讨论】:

  • 尝试重新启动 Visual Studio 的所有实例,清理和构建解决方案,然后在 NuGet 控制台中运行 Update-Package -Reinstall。运行 Update-Package -Reinstall 后,您可能需要尝试另一个 clean + build。
  • 此外,有时将/packages 文件夹签入源代码管理可能会导致此类问题。从源代码管理中删除它并重新下载项目并重试(确保 NuGet 恢复发生)。
  • @LewsTherin 没有变化(尽管重新安装确实引发了警告,但不确定这是否相关 - “目录'内容'不为空。正在跳过......”)。我的包文件夹是 .gitignore 的一部分。
  • @LewsTherin 尝试删除本地存储库,重新克隆,然后再做一次……这次成功了。不知道问题是什么,但现在已经解决了。

标签: c# .net asp.net-mvc


【解决方案1】:

右键单击您的项目并单击 Visual Studio 中的清理解决方案,然后再次尝试构建它。大部分时间为我解决了问题。 或者,如果您从其他地方复制粘贴了一个类,请尝试在您的项目中创建一个新类,然后将代码复制粘贴到另一个类中,而不是仅仅复制该类本身。

【讨论】:

  • 我删除了我创建的类并再次尝试从其他地方复制代码。为什么这行得通,为什么或如何 VS 甚至知道差异?这是一个该死的文本文件!
【解决方案2】:

我也遇到了同样的问题,我在尝试安装 EntityFramework 时遇到了这个问题。 代码清理对我有用。去分析,然后尝试使用这两个配置文件运行代码清理。

【讨论】:

    【解决方案3】:

    为了完整起见,我将包含实际对我有用的修复作为答案。

    只需删除 repo,重新克隆,然后重试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2018-09-30
      • 1970-01-01
      • 2022-09-29
      相关资源
      最近更新 更多