如何将.NET 3.5项目中的Crystal Report库升级到CR XI R2?

时间:2010-03-01 23:36:55

标签: visual-studio-2008 crystal-reports

我们的项目目前使用Crystal Reports for Visual Studio 2008.我们需要升级到XI R2,但我遇到了问题。以下是我遵循的步骤:

  1. 安装Crystal Reports XI R2。
  2. 从GAC收集更新的程序集。我这样做是因为我在“Add References ...”对话框中找不到版本XI库。我确认这些程序集的版本是11.5。*。我收集的图书馆是:
    • CrystalDecisions.CrystalReports.Engine
    • CrystalDecisions.Enterprise.Framework
    • CrystalDecisions.Enterprise.InfoStore
    • CrystalDecisions.ReportSource
    • CrystalDecisions.Shared
    • CrystalDecisions.Windows.Forms
  3. 将项目中的所有引用替换为版本10.5 Crystal库,并引用较新的程序集。
  4. 一切都很好,但是当我尝试实例化ReportDocument时,我收到了这个错误:

    The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.
    

    有什么我想念的吗?这会不起作用吗?

2 个答案:

答案 0 :(得分:2)

如果我理解您的问题,则无法升级到CR XI R2并将其与VS 2008一起使用.XI R2支持的最高版本是VS 2005.我认为您必须将CR产品升级到CR 2008。

答案 1 :(得分:1)

- 从控制面板程序中卸载Crytal Report 2008。

- 重启你的电脑

- 然后添加“参考”选项卡浏览到此路径C:\ Program Files \ Business Objects \ Common \ 3.5 \ managed \ dotnet2并选择解决方案的Dll

- 添加此代码以测试de references

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim rptDocument As ReportDocument
    rptDocument = New ReportDocument()

    Dim reportPath As String = Application.StartupPath & "\" & "CrystalReport1.rpt"
    rptDocument.Load(reportPath)

    Me.myCrystalReportViewer.ReportSource = rptDocument

End Sub


Private Sub myCrystalReportViewer_ClickPage(ByVal sender As Object, ByVal e As CrystalDecisions.Windows.Forms.PageMouseEventArgs) Handles myCrystalReportViewer.ClickPage
    Debug.Print(e.ObjectInfo.Text)
End Sub