VS2008和VS2010水晶報表版本沖突的問題解決


VS2010中的水晶報表是單獨安裝的,首先要下載SAP的插件CRforVS_13_0.exe,安裝成功后,會在VS的工具欄中出現【報表設計】一欄,里面有3個控件,當把這3個控件任意一個拖拽到頁面上時,控件會報錯,顯示“未將對象引用設置到對象實例”,運行頁面,則會出現如下提示“

CS0433: 類型“CrystalDecisions.Web.CrystalReportViewer”同時存在於“c:\Windows\assembly \GAC_MSIL\CrystalDecisions.Web\13.0.2000.0__692fbea5521e1304 \CrystalDecisions.Web.dll”和

“c:\Windows\assembly\GAC_MSIL\CrystalDecisions.Web\10.5.3700.0__692fbea5521e1304\CrystalDecisions.Web.dll”中

這是因為VS2010中水晶報表V13與VS2008中水晶報表V10版本沖突,導致程序在編譯時無法正確定位到正確版本的DLL文件,在VS2010中,所有的DLL文件,都使用V13,具體解決方法如下:

(1)先檢查web.config文件中關於程序集的引用,如果有不同的版本,改成更高的那個唯一版本就可以編譯成功了.

是否如下,是V13

<assemblies>
        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
        <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
      </assemblies

如果還不行,先去提示沖突的目錄里,要用命令行cmd,進入相應目錄,不然進不去,我是

C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Web.dll 把這個目錄下的版本是10.5.3700.0的DLL文件刪除,然后把C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\librarymanage\c055f880\67c8205c\assembly\dl3\8cb2bd12\0018735e_b20dc801\CrystalDecisions.CrystalReports.Engine.DLL這個版本是13.0.2000.0的dll復制進來。

1、右鍵選擇項目,選擇屬性頁選項。

2、屬性頁中有引用項,在引用中刪除多余重復的引用。

3、確定后運行,不在報錯。

願這個文章對您有幫助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM