我項目中出現的背景:
當我還在用2005VS開發項目時,用VS兩種編譯方式,動態編譯和先行編譯都可以。
當VS升級到2010開發項目時,用先行編譯出現以下的錯誤,用動態編譯是沒有問題的。想瞭解這2種編譯的直接上網查“ASP.NET的編譯原理”。
問題概述和解決方案:
有看到Web.Extension關鍵字的都是和AJAX有關的組件
如果明明在測試機開發上,AJAX都正常執行,部署到正式機時
有以下等等的錯誤:
無法載入檔案或組件 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其相依性的其中之一。 系統找不到指定的檔案。
CS0006:找不到中繼資料檔 C:\Windows\assembly\GAC_MSIL\System.Web.Extensions\1.0.61025.0__31bf3856ad364e35\System.Web.Extensions.dll
那是因為網站執行的是很古早的AJAX 1.0版,它是需要安裝的
把Microsoft ASP.NET 2.0 AJAXExtensions 1.0安裝起來後,網站就可以正常執行了
要下載AJAX ControlToolKit一般都會很直覺地到CodePlex網站找,很遺憾的是,最早期的1.0版,在這個網站已沒有提供下載
反而要去Microsoft Download Center才找得到
ASP.NET AJAX 1.0安裝檔
安裝完後,在C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025路徑下有System.Web.Extensions.Design.dll和System.Web.Extensions.dll
要開發AJAX 1.0的話,就把這兩個dll檔放到網站的Bin目錄下(如果現有網站AJAX執行好好的,就不建議再覆蓋目前的dll檔,一個Web Site最好統一執行相同版本的AJAX,否則開發上不但會讓人混亂,最糟糕的是網站執行不起來)
以下兩個可裝可不裝,視硬碟空間決定
ASP.NET 2.0 AJAX Extensions 1.0 Source Code
安裝完後在C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\Source
底下可以找到一些.cs檔,可以看看裡面的程式碼怎麼寫
Microsoft ASP.NET 2.0 AJAX Templates for Visual Studio 2008
補充:
目前CodePlex網站上提供.net 3.5 和.net 4的AjaxControlToolkit,是不須安裝的,只要把AjaxControlToolkit.dll和語系資料夾放到網站的Bin目錄下
Visual Studio工具箱的索引標籤>選擇項目>.net Framework頁籤>選Bin目錄底下的AjaxControlToolkit.dll,即可加入擴充項開始開發