天天看點

[轉貼]VS2005項目遷移至VS2008初體驗

  近段時間忙于其他的事物,無暇旁顧.NET,以至于大半個月前就裝好的VS2008也一直沒機會試用.昨天,發現一個以前的項目需要修正個bug,正好借這個機會小試了下VS2008.

我下的版本是VS2008 Team suit rtm版,用TS主要是因為有單元測試,如果不考慮這個,用pro版也一樣的.

不大記得2005的TS版有多大了,我機子上隻有個2005 pro版,是2.69G,這次下的VS2008 TS有3.82G之大(都包含了MSDN),要換了以前的破電腦,20G的硬碟,下完後再安裝下,大半硬碟空間就沒了.....

同2003遷移到2005一樣,VS2005的項目要遷移到2008一樣非常的簡單,輕按兩下2005的solution或project檔案,就會出現更新 的提示框,按提示一路點下去就好了,我注意到裡面有段話說到,"更新後的項目有可能無法在更早版本的VS中打開",其實我壓根就沒指望升成2008後還能 在2005下使用(以前用VC6更新成VC7後,是不能用再傳回去用VS6打開的),按MS的意思,應該還是可能的了?以後可以試下:)

大部分的2005的項目都可以像上面說的那樣,簡單的遷移完成,編譯後就可以用了.在安裝2008之後,雖然.NET Framework更新到了3.5,但是在IIS裡,ASP.NET版本頁籤中,依然隻有1.1和2.0的選項,我試驗了下,隻要選擇2.0的環境就可 以正常的運作.NET 3.5版本的WEB程式.這是個好消息,說明如果你的程式裡不包含3.5特性的話,編譯後依然可以直接放在以前伺服器上運作,而不需要更新伺服器的. NET版本(剛剛查了下,目前.NET所有的名字空間的runtime都在2.0或更低的版本架構下).

除此之外,VS2008的項目屬性中多了一項TargetFramework,你可以選擇2.0,3.0和3.5三個版本,如果是2.0或3.0,那麼會 有部分的.NET名字空間無法引用,具體表現是在引用->.NET的清單中為灰色不可選擇.由2005更新到2008的項目,預設的 TargetFramework為2.0版本

我在遷移項目的過程中也不是一帆風順,在solution下,有個項目使用了MS ASP.NET AJAX 1.0和相應的ajaxControlToolkit,編譯時直接報錯.

這是因為在VS2008中內建了ASP.NET AJAX1.0,而且版本号和路徑都變化了,是以需要删除以前的引用,重新引用.

AJAX用到的空間是System.Web.Extensions和System.Web.Extensions.Design,重新引用後,編譯可以通過了,但是一運作又是一堆錯誤.要改的東西還不少.

首先是web.config檔案,在assemblies,configsections等節點下的Extensions相關的type全部需要修改,最 簡單的方法是建立個VS2008的WEBSITE項目,往頁面随便扔個ajax的控件,像ScriptManager之類的,然後再去檢視它的 web.config檔案,對照來改吧.

改完後再運作還是會報錯,這個時候是因為我使用了ajaxControlToolkit的原因,他的版本是.NET 2.0,問題不是出在這,而是出在它引用的AJAX包的檔案,與上面的項目一樣,版本是錯誤的.是以,把ajaxControlToolkit的 solution打開,重新對System.Web.Extensions和System.Web.Extensions.Design引用,然後再 rebuild.再運作自己的項目,一切都OK了.

這次我隻是小小的試用了下VS2008,雖然一般的項目遷移不會有什麼問題,但隻要牽涉到第三方元件的時候,問題就會變的複雜,不過隻要自己能夠認真的一步步找問題,這都不是問題了:)

繼續閱讀