2011-07-26 41 views
0

我有一個閃亮的WPF(4.0)應用程序,我需要添加水晶報表到。我爲VS2010下載並安裝了CR,然後我們購買並安裝了Crystal Reports 13(其中包含WPF CrystalReportsViewer)。的Crystal Reports「類沒有註冊」 WPF

作爲一個測試,我創建了Visual Studio的一個新的 「Crystal Reports的WPF應用程序」 項目。我創建了一個報告,將其鏈接到我的數據庫(Sql Server),並預覽了報告。一切都好。

我然後複製CrystalReportsViewer窗口進入我的「真正的」應用程序(同一臺機器和框架),添加相同標號並嘗試運行相同的代碼:

 ReportDocument _report; 
     this._report = new ReportDocument(); 
     this._report.Load(@"CrystalReport1.rpt"); 
     this.reportViewer.ViewerCore.ReportSource = _report; 

然而,在我的「真正的」應用它炸彈出來有錯誤的下聯:

Retrieving the COM class factory for component with CLSID 
{4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B} failed due to the following error: 
80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). 
  • 我已經雙重和三重檢查了引用是這兩個項目是相同的。
  • 我已經經歷了所有晦澀難懂的項目和解決方案屬性。
  • 我添加了一個新的水晶報表的項目所以會這樣,而不是手動添加引用。谷歌說:「確保框架是框架4而不是框架4客戶端配置文件」。谷歌還表示「確保框架是Framework 4 Client Profile而不是Framework 4」。我試過都沒有用。
  • 該產品已註冊。

我還能做什麼?我不想將我的整個項目添加到測試應用程序!

我在任何這些版本的被使用Crystal Reports距今約3版,而不是一旦它乾淨安裝,註冊,建立報告,將它們添加到應用程序和部署。你會認爲,在13個版本之後,他們要麼能夠把它弄對,要麼我的各個僱主會選擇另一個報告工具!

回答

1

明白了。一個解決方案需要在配置中從「任意CPU」更改爲「x86」。

1

安裝獨立的x64和x86包解決了這個錯誤我。