我刚刚切换到VS 2015.我有一个较旧的MVC 5应用程序,运行4.52。在VS 2013中,它非常好。
在VS 2015中,我的@Html.TextBoxFor()
下面出现了红色波浪形,但错误表明:
类型'表达式<>'在一个不是的程序集中定义 引用。您必须添加对程序集'System.Core的引用, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。
该项目构建并运行得很好 - 但我担心VS 2013中从未发生的IntelliSense错误。好的,我尝试按照上面的错误中的建议添加对System.Core的引用然后我得到这个错误:
无法添加对“System.Core”的引用。这个组件是 已经由构建系统自动引用。
同样,这在VS 2013中也没问题。
答案 0 :(得分:14)
我已尝试过其中大部分内容,最终对我有用的是卸载项目,编辑csproj文件,并添加以下内容:
<Reference Include="System.Core" />
答案 1 :(得分:1)
只有删除解决方案并从源代码控制中获取解决方案才能解决这个问题,删除.vs文件夹并启动VS2015,因为“devenv.exe / resetuserdata”没有解决我的问题,删除MEF组件缓存的事件没有解决{{{ 3}}答案。
答案 2 :(得分:1)
从4.5.2更新到4.6.1,我在自己的视图中得到了这些确切的错误。构建和运行该解决方案绝对可以正常工作。在尝试了这里已经发布的所有解决方案之后(并检查了intellisense的工作情况,清除缓存,删除bin和obj文件夹,加载和重新加载项目),任何方法都无效(system.core已经正确构建并添加了这些引用Web.config什么也不做)。我进行了自己的挖掘,最终发现在发生错误的项目中,Web.config文件包含两个编译调试目标框架和一个不同的httpRuntime目标框架。像这样:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.1" />
...
解决方案是通过删除额外的编译调试目标框架来解决此问题,并确保所有目标框架都是我想要的(4.6.1)
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
...
如果没有其他方法,请再次检查。希望能帮助到某人!
答案 3 :(得分:0)
我在其他Stack Overflow线程上尝试了这些和其他解决方案。没有用。
修复Visual Studio的安装是有用的,它可以在System Settings,Apps&amp;功能子菜单(单击VS并选择“修复”)。花了几个小时,但问题就消失了。
答案 4 :(得分:0)
就我而言,将<ProjectGuid>
文件中的代码.csproj
更改为<ProjectGuid>{6C651A5E-8DDA-4680-804E-F9596743CBE8}</ProjectGuid>
并重新打开解决方案后,该工作正常。上面发布的所有解决方案对我都不起作用。
答案 5 :(得分:0)
如果有人面对
VS 2017,.net Framework版本4.8和MVC版本5.2.7
Then check your Microsoft.CodeDom.Providers.DotNetCompilerPlatform version, If you have 2.0.1 version installed then downgrade it to 2.0.0
然后检查MVC版本,您必须将其降级到5.2.4
Then downgrade Microsoft.AspNet.WebPages 3.2.7 to Microsoft.AspNet.WebPages 3.2.4
and Microsoft.AspNet.Razor 3.2.7 to Microsoft.AspNet.Razor 3.2.4
尝试立即运行该应用程序,它将运行。
答案 6 :(得分:0)
就我而言(VS 2019),我必须在卸载项目后将其添加到 .csproj 文件中
<Reference Include="System.Core" />
需要在 ProjectGuid 标签中进行如下更改:
<ProjectGuid>{6C651A5E-8DDA-4680-804E-F9596743CBE8}</ProjectGuid>
然后重新加载项目并将此标记添加到 web.config 中,如下所示:
<compilation debug="true" ...>
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
...
</assemblies>
</compilation>
之后只需重建项目,就我而言,所有错误都消失了。