“Linq”类型或命名空间在“System”命名空间中不存在。

26

当我想使用按钮来编写C#代码时,它不会进入“.cs”文件以编写C#代码。当我检查项目源代码时,发现了这个错误:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

严重性 代码 描述 项目 文件 行 错误 CS0234 类型或命名空间名称“Linq”在命名空间“System”中不存在(是否缺少程序集引用?) Golestani C:\Users\javad\Documents\Golestani\Login.aspx.cs 3

Image


你是什么意思? - javad
右键单击您的项目 -> 添加引用 -> 选择框架选项卡 -> 选择System.Core - Hamed
进入项目 -> 引用 -> 添加引用 -> -> 程序集 -> 搜索 "System.Xml.Linq" 并选中它。 - AmirHossein Rezaei
5个回答

71

我的问题是System.Linq未被识别。我解决的方法是将我的网站的目标框架从4.0更改为3.5,然后再切换回原始的目标框架(在我的情况下是4.0)

  1. 在Visual Studio中按下Shift+F4右键单击项目级别并选择属性页。(在VS2017中按Alt+Enter右键单击项目级别并选择属性
  2. 将目标框架从.Net Framework 4更改为.Net Framework 3.5
  3. 点击确定
  4. 再次重复此过程以相反的方式,再次按下Shift+F4
  5. 将其从.Net Framework 3.5切换回.Net Framework 4

希望这可以帮助您


8
如果 Shift+F4 没有起作用,只需右键单击项目级别并选择“属性页面”。 - Malcolm Anderson
3
经过数小时的研究,这对我很有效。谢谢。 - EricImhauser
Visual Studio在工作时很好,但它是一个混合了各种东西的可怕的弗兰肯斯坦集合,经常出现问题,让人难以理解。当你决定重新安装Windows只是为了让VS再次工作时,这是令人沮丧的。教我如何尝试使用它来处理R和Python,同时还期望C#也能正常工作。 - user2163234
此操作可能会更改 web.config 的内容,请建议在更改后检查修改了哪些内容,以确保没有功能被禁用。 - yu yang Jian
在我的情况下(从Framework 2.0更改为Framework 3.5),问题得到了解决。谢谢。 - Marco Aurelio Fernandez Reyes

31

尝试卸载然后重新加载相关项目。这样做就可以了。


1
是的,只需关闭并重新打开VS2017即可解决问题。对于各种问题,这种情况经常发生。 - blind Skwirl
2
这在我的VS 2022中有效。 - wallef

4

将这段代码放入配置文件(Web.config)中并进行测试。

<compilation debug="false">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>

1
我成功地进行了这个更改,尽管我只需要执行System.Core。对于那些没有记住Web.config XML模式的人来说,<compilation>元素位于<system.web>下面。@Hamed,我敦促你修改你的答案,包括<system.web>并修复语法高亮显示。 - Aron Boyette
曾在 Windows 2008 R2 上为一个古老的内部网站工作。谢谢。 - Rajesh Thampi

3

Visual Studio 2015 引用 -> 添加引用 -> 程序集 -> 选择 System.Data.Linq


1

试一下这个。也许 targetFramework="4.0" 可以起作用。对我有用。

<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接