C# 错误CS0234:类型或命名空间名称';脚本';命名空间中不存在';System.Web';

C# 错误CS0234:类型或命名空间名称';脚本';命名空间中不存在';System.Web';,c#,visual-studio-2010,javascriptserializer,jsonserializer,C#,Visual Studio 2010,Javascriptserializer,Jsonserializer,我试图在我的应用程序中使用JavaScriptSerializer 我最初收到 找不到JavaScriptSerializer 我补充道: using System.Web.Script.Serialization; 但是子关键字Script下面有一条蓝线: 命名空间中不存在类型或命名空间“Script” “System.Web”(是否缺少程序集引用?) 因此,我在项目中添加了以下内容: C:\Program Files(x86)\Reference Assembly\Microsoft\Fr

我试图在我的应用程序中使用
JavaScriptSerializer

我最初收到

找不到JavaScriptSerializer

我补充道:

using System.Web.Script.Serialization;
但是子关键字
Script
下面有一条蓝线:

命名空间中不存在类型或命名空间“Script” “System.Web”(是否缺少程序集引用?)

因此,我在项目中添加了以下内容:

C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETFramework\v4.0\System.Web.Extensions.dll

那没用。我仍然收到同样的蓝色下划线和同样的错误。引用用感叹号黄色警告标记:

我尝试了建议的解决方案,但正如@user781490所示,它们对我的情况没有帮助

你知道怎么解决这个问题吗?

我发现了

第一种解决方案(不推荐):

查找.Net Framework 3.5和2.0文件夹

将System.Web.Extensions.dll从3.5和System.Web.dll从2.0复制到应用程序文件夹

添加对这两个程序集的引用

更改引用的程序集属性,将“复制本地”设置为true 和构建来测试您的应用程序,以确保所有代码都能正常工作

第二种解决方案(使用不同的类/库):

发布该问题的用户声称,并帮助他复制了
JavaScriptSerializer
的行为


您也可以尝试使用。这是一个第三方库,功能非常强大。

我也有同样的功能。脚本已加下划线。我添加了对System.Web.Extensions的引用。此后,脚本不再加下划线。希望这对其他人有所帮助。

因为.Net 4.0+中不推荐使用JsonSerializer,所以我用它来解决这个问题


NuGet->Install Package Newtonsoft.Json

只需添加对System.Web.Extensions的引用,就可以了。

添加System.Web.Extensions作为项目的引用


参考

所以您的项目所指向的框架肯定不是客户端配置文件版本,对吗?正如我上面的用户所说,请确保您的项目针对的是.NET 4而不是.NET 4客户端配置文件。@Arran它是
.NET framework 4客户端配置文件
,但是:(1)我对将其转换为
.NETFramework 4
不感兴趣。(2) 如果你读了这篇文章,你会注意到那里的提示甚至对那些拥有完整
.netframework4
的人都没有帮助。当然,一定有一种方法可以在客户端配置文件中使用
JavaScriptSerializer
,对吗?@Tejassarma如果我试图将目标框架从
.NET framework 4客户端配置文件更改为
.NET framework 4
,我会收到一个警告,我的项目可能会发生可怕的事情。。。因此,当被问到“是否确实要更改此项目的目标框架?”时,我当然会单击
No
。您是否尝试删除并重新添加System.Web.Extensions引用?在
C:\Program Files(x86)\reference Assemblys\Microsoft\Framework\v3.5
中引用
3.5
版本成功了。非常感谢。newtonsoft.json是另一个选项。我添加了对System.Web.Extensions的引用,现在它们都加了下划线