【问题标题】:Cannot find System.Web.Script.Service namespace error after upgrading to Visual studio 2010升级到 Visual Studio 2010 后找不到 System.Web.Script.Service 命名空间错误
【发布时间】:2011-03-04 10:47:11
【问题描述】:

我刚刚将 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”。

任何人都知道问题可能是什么,因为我很困惑? :(

【问题讨论】:

  • 有趣...在 VS 2010 中使用对象浏览器并深入到 C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll > System .Web.Script.Services 我找不到 ScriptService 项。此外,当我深入到 C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.Runtime.Serialization.dll > System.Runtime.Serialization 时,我也没有看到 Json 项。匹配代码中报告的问题。我错过了一些安装吗?
  • 另外有趣的是,如果我以 4.0 框架而不是 3.5 为目标,一切正常。不幸的是,我的网络服务器上还没有 4.0 :(

标签: asp.net json .net-3.5 visual-studio-2010


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    似乎微软有一个错误,其中 VS2010 中 v3.5 的目标框架是 GAC 的 v3.0!将有问题的程序集移动到 v3.0 文件夹似乎开始解决问题,但有点混乱。我想我会等待微软为 VS 2010 提供适当的修复!

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

    谷歌翻译帮助这个链接!

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

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

    如果其他人遇到此问题并希望通过 Microsoft 跟踪/投票支持此错误的状态: https://connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-actually-targets-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>
    

    【讨论】:

      【解决方案3】:
      • 检查您的 web.config 程序集 条目。

      • 在 Visual Studio 中检查 .NET Framework target 2010项目,默认4.0

      • 检查 IIS,确保使用适当的框架 您的网站。新的 .NET 4.0 安装可以将您的默认框架更改为 4.0。

      【讨论】:

      • 嗨 Rick,我已经有了这两个条目:
      • 嗨 Rick,再次欢呼,但我的目标已经是 3.5 而不是 4.0。而且我直接从 VS 2010 运行网站,所以 IIS 不应该发挥作用?
      • 您的机器是否安装过 Visual Studio 2010 Beta 或 RC?我必须手动删除一些目录才能让 2010 正常工作。
      • 嗨 Rick - 再次感谢您的想法!不,这台机器安装了所有最新玩具,因为我刚刚升级了硬盘并决定重新开始:Windows 7、VS 2010、Office 2010、Expression 4。
      • 哦,我还在 VS 2010 之前安装了 SQL Server 2008 R2,以防有任何相关性(可能没有)。
      【解决方案4】:

      我通过将网站的目标框架从 3.5 更改为 4.0 并再次改回 3.5 解决了类似的问题。

      这导致我的 web.config 文件添加了很多内容,这可能使 Visual Studio 更容易支持我的项目。

      我从未“将我的项目升级到 Visual Studio 2010”,但这是一个较旧的 aspx 网站,这可能是第一次使用 VS 2010 打开它。

      【讨论】:

        【解决方案5】:

        通过将我的网站的目标框架从 3.5 更改为 4.0 并再次回到 3.5,我也解决了类似的问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-13
          • 2011-06-20
          • 1970-01-01
          • 1970-01-01
          • 2011-03-06
          • 1970-01-01
          • 2014-02-17
          相关资源
          最近更新 更多