升级到Visual Studio 2010后,找不到System.Web.Script.Service命名空间错误

Gav*_*vin 7 asp.net json visual-studio-2010 .net-3.5

我刚刚将VS 2008项目升级到VS 2010,转换项目但将目标保持为.NET 3.5(已安装SP1).我的项目在另一台机器上的VS 2008下没有问题.

我添加了对System.Web.Extensions.dll的引用,但我仍然从App_Code文件夹中的代码中获得以下错误:

1)找不到System.Web.Script.Service命名空间.

2)未定义类型"System.Web.Script.Services.ScriptService".

3)未定义类型'System.Runtime.Serialization.Json.DataContractJsonSerializer'.

任何人都有任何想法可能是什么问题,因为我很难过?:(

Ian*_*vis 16

在Visual Studio 2012中,请务必添加引用,System.Web.Extensions因为它是包含的引用System.Web.Script.Serialization.


Gav*_*vin 5

似乎有一个来自Microsoft的错误,其中VS2010中的v3.5目标框架是GAC的3.0版本!将问题移至v3.0文件夹的程序集似乎开始解决问题,但有点混乱.想想我会等待微软为VS 2010带来正确的解决方案!

http://www.cnblogs.com/dudu/archive/2010/06/24/1764549.html

谷歌翻译帮助这个链接!

从v3.5文件夹复制到v3.0文件夹的程序集的更多细节,作为解决此VS 2010错误的解决方法:

http://forums.asp.net/p/1569744/3942724.aspx

如果其他人遇到此问题,并希望跟踪/投票通知Microsoft的此错误状态:https: //connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-实际上,目标-3-0-GAC

更新 - 微软对我提出的错误报告发布了以下修复:

要构建一个目标为3.5的网站,请在web.config文件中添加一个编译器标签,就像我在下面粘贴一样,因此语言编译将选择正确版本的vbc.exe.您可以创建一个新的3.5网站,默认的web.config包含您可以引用的那些标记.

<system.codedom>
  <compilers>
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="OptionInfer" value="true"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
  </compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)