如何升級VS2005含有CrystalReport的專案到VS2010

最近公司陸續在將VS2005的專案升級到VS2010,其中針對CrystalReport部份遇到了些困難,寫起來當作備份,以免哪天需要用到時卻偏偏想不起來怎麼做!希望也可以提供給同樣遇到此問題的同好一些參考的價值!

最近公司陸續在將VS2005的專案升級到VS2010,其中針對CrystalReport部份遇到了些困難,寫起來當作備份,以免哪天需要用到時卻偏偏想不起來怎麼做!希望也可以提供給同樣遇到此問題的同好一些參考的價值!

 

一、前置作業:

1. 安裝VisualStudio 2010(廢話)

2. 安裝CrystalReport for VS 2010 (VS2010起 CrystaReport已不內建了,要到SAP的網站自行下載安裝,連結:http://scn.sap.com/docs/DOC-7824,或自行Google一下也可找到。)

 

二、修正環境:

不知道是MS與SAP樑子結很深還是怎樣,安裝完之後卻無法新增CrystalReport的頁面,會出現以下的錯誤:

發生"無法載入檔案或組件’file:///C:\Program Files\SAP BusinessObject\Crystal Report for .Net Framework 4.0\Common\SAP BusinessObject Enterprise XI 4.0\win32_x86\donet1\crdb_adoplus.dll’或其相依性的其中之一系統找不到指定的檔案"

解法如下:
Crdb_adoplus.dll實際上是在win32_x86這個資料夾下,並沒有donet1這個目錄,當然也不可能在裡面找得到!只要在C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86 目錄下新增一個資料匣 dotnet1,再把 crdb_adoplus.dll 複製過去就好! 

ps.C:是我安裝VS所在的磁碟機代號,各位客人請依自己的環境操作。

 

以為這樣就OK了嗎?才不!又來了個錯誤:

混合模式組件是針對版本'v2.0.50727' 的執行階段建置的,無法在沒有其他組態資訊的情況下載入 4.0 執行階段中。 

解法如下:
如果是 Web 就開啟 web.config 如果是 WinForm 就開啟 app.conifg,找到

<startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup> 

並在 startup 加上 useLegacyV2RuntimeActivationPolicy="true"

<startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

再執行一次,OH YA!!!