types“Expression <>”是在未引用的程序集中定义的
在ASP.NET MVC 4.5.2框架。
打字后
@Html.LabelFor() or @Html.EditorFor()
在视图中
我得到错误: types'Expression <>'是在未引用的程序集中定义的。您必须添加对程序集“System.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”的引用。
我已经添加了程序集引用System.Core.dll,版本4.0.0.0,运行时版本v4.0.30319。 也是我在web.config
尽pipe很久以后,我仍然遇到同样的问题。 问题是我无法访问剃刀视图(.cshtml),因为我得到一个错误,指出我有一个缺less的程序集引用,即System.Web.Mvc
,即使它在项目引用。 经过调查,我发现安装的NuGet版本是5.2.3,而项目需要5.2.0。 解决scheme是降级MVC版本。
- 转到项目 – > NuGet包pipe理器。
- searchMVC; 这将是第一个结果。
- 接下来是从NuGet包的细节下拉列表中select降级并提交。
确认所有的对话框,你准备好了。
我不知道你是否还有这个问题,但我也有同样的问题。
我能在这里find解决scheme
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"/>
我希望这有帮助..
此错误意味着Visual Studio无法findSystem.Web.Mvc程序集来为其剃刀视图的智能感知提供支持。 一个或两个以下可能需要修复它。
- 确保主web.config(网站根目录)中的编译属性的.NET框架版本与项目属性中指定的版本相同。
[根] /Web.config:
<system.web> <compilation targetFramework="4.6" />
项目属性:
- 确保视图web.config中指定的MVC程序集版本(视图文件夹中的版本)与您在项目中使用的MVC程序集相同。
[views文件夹] /web.config:
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
MVC组件参考属性:
- closurescshtml文件
- 重build解决scheme
- 打开cshtml文件
- 仍然错误? 重新启动Visual Studio
- 仍然错误? 使用ctm1988的答案
我已经尝试了大部分这些,最终为我工作的是卸载项目,编辑csproj文件,并添加以下内容:
<Reference Include="System.Core" />
在我的情况下,只有当Resharper打开时才显示此消息。 我已清除Resharpercaching,重新启动VS,closuresResharper并再次打开它。 消息已经消失。
检查cshtml文件构build操作是否设置为“内容”。
我使用ReSharper,并注意到由于某种原因,生成的文件在调用模板时默认为“无”。
我刚刚有同样的问题,没有解决scheme解决问题。 我不得不在System.Web
添加到我的web.config
compilation debug="true" targetFramework="4.5" httpRuntime targetFramework="4.5"
我在更改一些config
时删除了它。
对我来说,在项目菜单下有一个选项“启用C#6.0 / VB 14”。 select这个选项的窍门。 以前我尝试修改web.config,重新启动Visual Studio等,如在这篇文章中build议的。
这发生在我的一个观点上,其他人都很好。 我做了以下几点:
- 创build一个新的视图
- 将旧视图中的内容复制并粘贴到新视图中
- 删除旧的
- 将新的更名为旧的
重新启动Visual Studio为我工作。
在我的情况下,解决scheme是移动Web.Config内的ConnectionString。 这个声明应该在AppSettings部分之后。
- closures文件
- 清理解决scheme
- build立解决scheme
- 重新打开文件
尝试添加
using system.Linq.Expressions;
我也有这个问题。 在web.config文件中将targetFramework="4.5.2"
更改为targetFramwork="4.5"
解决了这个问题。
如果你只有一个或两个CSHTML文件…这是一个损坏的文件。
我遇到了一个有一些隐藏的unicode字符的损坏文件。 尝试将文档的所有文本复制到一个新的记事本实例。 清除原始文件的内容并保存…如果文件长度大于0,则出现错误。
删除文件,并保存您的记事本实例在旧版本。 所有的错误都为我消失了。
在我的解决scheme中,我已经发生过几次了。 不知道是什么原因造成的,但是我怀疑当Resharper开始吞噬巨大的记忆深渊的时候, 它正在崩溃 。
我是唯一一个和Resharper有爱/恨关系的人吗?
如果您的解决scheme中有多个项目都不是针对相同版本的.NET Framework,则可能会导致这种情况。 例如,如果您的Web应用程序项目以.NET 4.5为目标,并且您在目标.NET 4.5.2的解决scheme中有另一个项目的程序集引用。 要解决这个问题,你需要改变你的项目到所有目标相同版本的.NET Framework。
如果没有答案工作使用这一个。 我面临同样的问题! 其实migrations文件夹中的configuration.cs文件丢失/删除。 我没有删除迁移文件夹,也没有从数据库中删除迁移表。 接下来在软件包pipe理器控制台(PM)中使用以下命令:
Enable-Migrations -Force Add-Migration Initial update-database
这个过程重新创build了configuration.cs文件,一切都很完美!
检查您的项目属性以获取目标框架。 我在我的项目中解决了这个问题,通过匹配我的目标框架.NET框架4.6.1 MVC 5.2.3是适当的解决scheme。 我从NuGet获得了MVC版本。