您必须添加对程序集 mscorlib 的引用,版本=4.0.0
Posted
技术标签:
【中文标题】您必须添加对程序集 mscorlib 的引用,版本=4.0.0【英文标题】:You must add a reference to assembly mscorlib, version=4.0.0 【发布时间】:2016-09-24 21:53:43 【问题描述】:我在将 Web 项目从 RC1 迁移到 RC2 时遇到了一些问题。当我切换时,我在整个项目中遇到了一堆这样的错误。
类型“Func”在未引用的程序集中定义。您必须添加对程序集 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的引用
看起来所有的 linq 函数和 lambda 表达式都不起作用。
这是我的project.json
文件的样子:
"frameworks":
"netcoreapp1.0":
"dependencies":
"System.Linq": "4.1.0-rc2-24027"
,
"imports": [ "net451", "portable-net45+win8" ]
,
"dependencies":
"NETStandard.Library": "1.5.0-rc2-24027",
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
"System.ComponentModel.Annotations": "4.1.0-*"
任何想法这意味着什么?我试过运行dotnet restore
,没有帮助。
【问题讨论】:
我无法重现此错误。你能分享你的整个 project.json 吗? 我在使用imports
参数时遇到了类似的问题。尝试完全删除它或将 net451 更改为 dnx451
@Negorath 好主意,还可以考虑查看 new RC2 Web 应用程序中添加的内容。导入部分是"dotnet5.6", "dnxcore50", "portable-net45+win8"
【参考方案1】:
我遇到了同样的问题,并将以下包添加到我的 project.json
依赖项中为我修复了它:
"Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027",
此包支持与基于 mscorlib 的 PCL 的兼容性。
【讨论】:
添加 1.0.1 版让我克服了这个错误。谢谢。 有同样的问题,但我仍然有 1 个错误Reference to type 'IListSource' claims it is defined in 'System', but it could not be found.
这也适用于从 ASP.NET Core 1.1 应用程序中引用使用 .NET Framework4+ 构建的外部项目。
救命稻草 - 在我找到这个之前,我已经对一个开源 repo 进行了 PR,将它们移植到 .NET Core。但不能为所有人做到这一点
这个!!!三天的谷歌搜索,我仍然无法在 Visual Studio 中构建(尽管可以从 dotnet build
构建)。添加Microsoft.NETCore.Portable.Compatibility
终于修复了它,我在其他任何地方都没有遇到过这个解决方案(在建议编辑 project.json 的无数过时文章中)。【参考方案2】:
事实上,问题在于一个旧的库,它需要一个 asp.net 4.0 或 4.5 版本(低于 Core)。
微软通过安装闲置的 NuGet 包为其提供了解决方案。
Microsoft.NETCore.Portable.Compatibility
这样您就可以使用旧库运行您的代码。
【讨论】:
【参考方案3】:删除解决方案文件夹中的 .csproj.user as per in the Screenshot。 从解决方案资源管理器中卸载项目。 重新加载项目并构建一次。这对我有用。
【讨论】:
这对我在 VS2019 中适用于 MVC 5 .NET Framework 4.8 Web 应用程序。谢谢。 这里和伊恩一样。它解决了 VS2019/FW 4.8/MVC5 上的问题。谢谢【参考方案4】:当我使用模板类库(.NET 标准) 创建一个新项目并将一些我想重复使用的代码移植到其中时,我遇到了这个错误。
我创建了一个新项目类库 (.NET Framework) 并将代码移到那里,它没有任何问题。
【讨论】:
【参考方案5】:我在一个单元测试项目中工作时突然遇到了这个错误。尝试了前面提到的建议,例如卸载和重新加载项目、重建等。最终只需要重新启动 Visual Studio - 您是否尝试将其关闭然后再次打开 :-) VS 16.11 版.5
【讨论】:
【参考方案6】:我没有代表发表评论,但 Matt Kemp 的帖子引出了我的解决方案。就我而言,它使用的是 Class Library(.Net Standard) 而不是 Android Class Library (Xamarin)
【讨论】:
请提供代码而不是写两行代码,即使您没有声誉,您也可以通过回答但提供示例来提供帮助。【参考方案7】:mscorlib 参考是默认添加的,但这似乎是一个 Visual Studio 参考问题。我删除了我的项目并创建了一个新项目,然后它运行良好。
【讨论】:
以上是关于您必须添加对程序集 mscorlib 的引用,版本=4.0.0的主要内容,如果未能解决你的问题,请参考以下文章
您必须添加对程序集 'netstandard, Version=2.0.0.0 的引用
VS用C#写的程序,在引用里没有mscorlib,但是可以使用该程序集里的内容,怎么回事?
部署到 Azure 网站时,您必须向 System.Runtime... 添加引用
类型“System.Data.Linq.DataContext”在未被引用的程序集中定义。必须添加对程序集“System.Data.Linq, Version=4.0.0.0, Culture=neu