2011-06-23 176 views
5

它似乎在我的開發機器或Windows XP測試機器上工作正常,但我遇到了Windows 7測試機器上的問題。Windows 7上的VS的Crystal Reports運行時引發錯誤

enter image description here

在那之後,我得到一個正常的崩潰錯誤:

************** Exception Text ************** 
System.InvalidOperationException: An error occurred creating the form. See 
Exception.InnerException for details. The error is: The type initializer for 
'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception. ---> 
System.TypeInitializationException: The type initializer for 
'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception. ---> 
CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: An error has occurred while 
attempting to load the Crystal Reports runtime. 

Either the Crystal Reports registry key permissions are insufficient or the Crystal Reports runtime is not installed correctly. 

Please install the appropriate Crystal Reports redistributable (CRRedist*.msi) containing the correct version of the Crystal Reports runtime (x86, x64, or Itanium) required. Please go to http://www.businessobjects.com/support for more information. 
    at CrystalDecisions.CrystalReports.Engine.ReportDocument.CheckForCrystalReportsRuntime() 
    at CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor() 
    --- End of inner exception stack trace --- 
    at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor() 
    at CrystalDecisions.CrystalReports.Engine.ReportClass..ctor() 
    at Processing.LogTag..ctor() 
    at Processing.frmPrint.InitializeComponent() 
    at Processing.frmPrint..ctor() 
    --- End of inner exception stack trace --- 

他們的網站當然是一場噩夢發現了什麼......

注:這是64位Windows 7 ,但我已經在32位模式下運行程序。

更新:

所以我想通了,水晶報表有一個問題,即x64版本沒有任何初始化,所以試圖導致錯誤在我的程序進行初始化。
我已驗證,如果我卸載x64版本,並安裝x86 32位版本,該程序工作正常。我讀過一些人剛剛在32位模式下運行該程序,但無論出於何種原因,這對我來說都不起作用。

我想讓問題開放一點點,希望有人已經想出瞭如何讓它初始化64位版本,因爲這是從一次安裝後自動安裝的。

回答

3

如果程序也在x64模式下運行,最新版本的Crystal Reports for Visual Studio 2010版本13.0.1(x64)將可用。這意味着VS可以設置爲針對任何CPU進行編譯。

http://www.sdn.sap.com/irj/boc/support?rid=/webcontent/uuid/d01fdad8-44e5-2d10-61ad-9d2d4158f3a8

+0

如果我安裝64位版本,這將工作與舊PC? –

+0

如果我沒有弄錯,如果你安裝該版本並在64位計算機上編譯,那麼它可以在x86或x64計算機上運行。至少它爲我做了。你可能不得不使用構建設置,但它應該工作。 – AndyD273

+0

這是偉人!你節省了這一天 –

3

首先更改您的項目的x86平臺的目標然後重新編譯並在您的Windows安裝此安裝7 64位PC(C:\ Program Files文件\微軟的Visual Studio 8 \ SDK \ V2.0 \ BootStrapper \ Packages \ CrystalReports \ CRRedist2005_x86.msi)並嘗試打開您的報告。

+0

這是一個救星。在VS中創建Windows服務時,似乎希望爲32位操作系統構建,因此清除「prefer 31 bit」的檢查可以做到這一點。 – koo9

1

我們通過設置應用程序池修復了這個問題高級設置啓用32位應用程序

0

如果您運行的是64位臺式機/服務器&你沒有也可能會出現此錯誤64位運行時。您需要知道要安裝哪個版本的運行時。一如既往谷歌是你最好的朋友搜索運行時間的位置

相關問題