升級到 Visual Studio 2010 後找不到 System.Web.Script.Service 命名空間錯誤
我剛剛將 VS 2008 項目升級到 VS 2010,轉換了項目,但將目標保持為 .NET 3.5(已安裝 SP1)。我的項目在另一台機器上的 VS 2008 下執行沒有問題。
我添加了對 System.Web.Extensions.dll 的引用,但我仍然從 App_Code 文件夾中的程式碼中收到以下錯誤:
找不到 System.Web.Script.Service 命名空間。
未定義類型“System.Web.Script.Services.ScriptService”。
未定義類型“System.Runtime.Serialization.Json.DataContractJsonSerializer”。
任何人都知道問題可能是什麼,因為我很困惑?:(
似乎微軟有一個錯誤,其中 VS2010 中 v3.5 的目標框架是 GAC 的 v3.0!將有問題的程序集移動到 v3.0 文件夾似乎開始解決問題,但有點混亂。我想我會等待微軟為 VS 2010 提供適當的修復!
http://www.cnblogs.com/dudu/archive/2010/06/24/1764549.html
Google翻譯有助於這個連結!
從 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>
在 Visual Studio 2012 中,請務必添加參考,
System.Web.Extensions因為那是包含System.Web.Script.Serialization.