在ASP.NET MVC 4.5.2框架中。
输入后
@Html.LabelFor()
or
@Html.EditorFor()
在视图中
我收到错误:类型'表达式<>'在未引用的程序集中定义。您必须添加对程序集'System.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。
我添加了程序集参考System.Core.dll,版本4.0.0.0,运行时版本v4.0.30319。我也在web.config中做了
答案 0 :(得分:44)
我不确定你是否还有这个问题,但我也有同样的问题。
我能够在这里找到解决方案
https://stackoverflow.com/questions/6496223/compilation-error-in-net-4-0-web-config-linq-not-found
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
我希望这有帮助..
答案 1 :(得分:34)
此错误表示Visual Studio无法找到System.Web.Mvc程序集以为其Razor视图的intellisense提供支持。可能需要以下一个或两个来修复它。
<强> [根] /Web.config:强>
<system.web>
<compilation targetFramework="4.6" />
项目属性:
答案 2 :(得分:33)
我和你一样遇到了同样的问题,尽管很晚。问题是我无法访问Razor视图(.cshtml),因为我收到一条错误,指出我有一个缺少的程序集引用,即System.Web.Mvc
,即使它在项目引用中。经过调查,我注意到安装的NuGet版本是5.2.3,而项目需要5.2.0。解决方案是降级MVC版本。
确认所有对话框,您就可以开始了。
答案 3 :(得分:15)
答案 4 :(得分:14)
我已尝试过其中大部分内容,最终对我有用的是卸载项目,编辑csproj文件,并添加以下内容:
<Reference Include="System.Core" />
答案 5 :(得分:4)
在我的情况下,只有在Resharper打开时才会显示此消息。我已经清除了Resharper缓存,重新启动了VS,关闭了Resharper并再次打开它。消息已经消失了。
答案 6 :(得分:3)
我刚才遇到了同样的问题,没有一个解决方案解决了这个问题。我必须将此添加到web.config
System.Web
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
我在更改config
周围的某些内容时删除了它。
答案 7 :(得分:2)
检查cshtml文件Build Action是否设置为'Content'。
我使用ReSharper并注意到由于某种原因,在调用模板时生成的文件默认为“无”。
答案 8 :(得分:2)
我遇到了丢失程序集的同样问题,而且VS2017版本没有将其正确复制到Bin文件夹中。这些步骤对我有所帮助:
- 导航到Web项目的“参考”节点
- 查找对System.Core的引用
- 打开VS属性窗口
- 在属性窗口中,将Copy Local:False更改为True
来自此评论: CS0012: The type '#####Any type#####' is defined in an assembly that is not referenced
答案 9 :(得分:2)
从项目目录中删除 [projectName] .csproj.user 文件对我有帮助。
答案 10 :(得分:1)
For me, there was an option under the project menu to "Enable C# 6.0/VB 14". Selecting this option did the trick. Previously I tried modifying the web.config, restarting Visual Studio, etc as was suggested in this post.
答案 11 :(得分:1)
注意:在web.config中添加System.Core程序集对我没有任何帮助,也没有降级MVC版本。尝试通过右键单击引用手动添加System.Core给出了例外:
无法添加对“ System.Core”的引用。该组件是 已由构建系统自动引用。
确保检查项目属性中的TargetFramework是否与项目web.config中的TargetFramework相匹配。
我的大型企业项目几乎所有.cshtml文件都在@Html帮助程序和Kendo网格上抛出错误。我彻底检查了代码,没有任何错误。这终于为我解决了问题:
清理sln,删除bin,obj,重建,重新启动VS等之后,我在系统目录文件夹中拉起bin文件夹。我将 System.Core.dll 文件手动添加到垃圾箱中。重新启动并构建项目,它成功了。
答案 12 :(得分:1)
答案 13 :(得分:1)
删除bin,.vs和obj目录。在Visual Studio上构建项目后。
答案 14 :(得分:1)
在Web.config中,我需要更改:
<system.web>
<compilation debug="true" targetFramework="4.7">
到
<system.web>
<httpRuntime targetFramework="4.7" />
<compilation debug="true" targetFramework="4.7">
答案 15 :(得分:1)
我遇到了同样的问题。基本上问题是使用System.Web.Mvc
的不同版本。所以你最应该打开Tools > Nuget Package Manager > Manage Nuget Packages for Solution
。您可以在System.Web.Mvc
标签上看到Cosolidate
。升级或降级将是最佳选择。如果您使用最新的.Net框架(当前为.Net 4.6.1
),则应将所有System.Web.Mvc
版本升级为5.2.4.0
。祝你好运!
答案 16 :(得分:0)
将以下内容添加到Web.config(在根目录中)。在尝试以下建议之前,我绝对尝试了所有建议,但没有任何效果。希望它可以节省其他人的时间。
我使用targetFramework =“ 4.6.1”,但如果不同,请将其更改为您使用的版本。
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
答案 17 :(得分:0)
我完成了以上所有操作,最后发现为我解决问题的方法(在带有MVC 5.2.4的.net Framework 4.7.1站点上)将其添加到{{1}中的根web.config中}-
<compilation>
答案 18 :(得分:0)
检查项目属性以获取Target框架。我在我的项目中通过匹配我的目标框架.NET框架4.6.1解决了这个问题.MVC 5.2.3是最合适的解决方案。我从NuGet获得了MVC版本。
答案 19 :(得分:0)
如果没有答案可以使用这个。我遇到了同样的问题!实际上,迁移文件夹中的configuration.cs文件已丢失/删除。我确实删除了迁移文件夹,并且还从数据库中删除了迁移表。接下来在Package Manager Console(PM)中使用以下命令:
Enable-Migrations -Force
Add-Migration Initial
update-database
此过程重新创建了配置文件,一切都运行良好!
答案 20 :(得分:0)
如果解决方案中有多个项目并非都针对相同版本的.NET Framework,则可能会导致这种情况。例如,如果您的Web应用程序项目以.NET 4.5为目标,并且您具有针对.NET 4.5.2的解决方案中另一个项目的程序集引用。要解决此问题,您需要将项目更改为所有目标相同版本的.NET Framework。
答案 21 :(得分:0)
如果您只使用一个或两个CSHTML文件...它是一个损坏的文件。
我发现这种情况发生在一个有一些隐藏的unicode字符的损坏文件中。 尝试将文档的所有文本复制到新的记事本实例。 清除原始文件的内容并保存...如果文件长度> 0,有什么不妥。
删除文件并将记事本实例保存在旧版本上。 所有的错误都消失了。
在我的解决方案中,我已经发生过几次这种情况。不确定导致它的原因,但是当我开始将巨大的记忆吞入深渊时,我怀疑它的Resharper 搞砸了。
我是唯一与Resharper有爱/恨关系的人吗?
答案 22 :(得分:0)
尝试添加
using system.Linq.Expressions;
答案 23 :(得分:0)
答案 24 :(得分:0)
我也有这个问题。
将targetFramework="4.5.2"
更改为targetFramwork="4.5"
在web.config文件中解决了它。
答案 25 :(得分:0)
在我的情况下,解决方案是在Web.Config中移动ConnectionString。此声明应在AppSettings部分之后。
答案 26 :(得分:0)
重启Visual Studio对我有用。
答案 27 :(得分:0)
这发生在我的一个观点 - 所有其他人都很好。我做了以下事情: