.net:模块System.Core版本3.5.0.0应该被引用

Dav*_*vid 2 .net asp.net-mvc projects-and-solutions

我有几个可能相关的问题.

首先在我的ASP.NET MVC项目视图中,lambda表达式语法如下:

<% =Html.TextBoxFor(x => x.Umi)%>
Run Code Online (Sandbox Code Playgroud)

导致ReSharper突出显示该行并显示消息:

Module 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' should be referenced
Run Code Online (Sandbox Code Playgroud)

其次,在同一视图中使用Where扩展方法IEnumerable<T>会导致编译错误,因为无法找到扩展方法.

将项目中的引用添加到System.Core会导致:

A reference to System.Core could not be added. This component is automatically referenced by the build system.
Run Code Online (Sandbox Code Playgroud)

我假设这个东西与项目是作为.NET 4项目创建的事实有关,但我不得不将其更改为目标3.5而不是服务器没有安装4.

有人帮吗?

Dav*_*vid 5

虽然我仍然不知道导致问题的原因,但我能够通过修改项目的.csproj文件来手动添加引用来修复它.

  1. 右键单击项目名称,然后单击"卸载项目"
  2. 右键单击项目名称,然后单击"编辑[项目名称] .csproj"
  3. 将以下Reference节点添加到ItemGroup节点(请参阅下面的代码)并保存
  4. 右键单击项目名称,然后单击"重新加载项目"

将System.Core引用直接添加到.csproj文件的代码如下:

<Reference Include="System.Core">
  <Private>True</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)