将Crystal报表嵌入WinForms应用程序

将Crystal报表嵌入WinForms应用程序,winforms,crystal-reports,Winforms,Crystal Reports,我有一个带有sql server数据库后端的winforms应用程序。我使用Crystal reports设计了一些报表,并将它们嵌入到winforms应用程序中。它们在我的电脑上都能正常工作(安装了crystal reports 2011)。但是,当我将应用程序分发到客户机时,尝试使用嵌入的crystal report运行表单会产生以下错误- The type initializer for 'CrystalDecisions.Shared.SharedUtils' threw an exce

我有一个带有sql server数据库后端的winforms应用程序。我使用Crystal reports设计了一些报表,并将它们嵌入到winforms应用程序中。它们在我的电脑上都能正常工作(安装了crystal reports 2011)。但是,当我将应用程序分发到客户机时,尝试使用嵌入的crystal report运行表单会产生以下错误-

The type initializer for 'CrystalDecisions.Shared.SharedUtils' threw an exception
我认为这可能是因为Crystal Reports未安装在客户端计算机上,因此我在客户端计算机上安装了Crystal Reports运行时(在“控制面板”>“程序”等中显示为已正确安装)。但是错误仍然存在

我真的希望没有必要为每台客户机购买许可证,因为有很多,而且成本会很高。我曾想过,如果运行时间合适,嵌入式crystal reports可以在我的分布式应用程序中工作

是否可以将带有嵌入式crystal reports的应用程序分发到未安装crystal reports的客户端计算机?如果是,可能产生此错误消息的原因是什么

下面是完整错误消息的屏幕截图


经过多次尝试和错误,问题由-

  • 在开发人员的计算机上安装Visual Studio 2010 SP5 64位Crystal Reports
  • 在客户端计算机上安装Crystal Reports Runtime MSI SP5 64位
  • 在客户端计算机上安装Crystal Reports Runtime MSI SP5 32位
  • 我仍然不明白为什么在客户机上安装了64位操作系统时需要执行步骤3,但只有在安装了64位和32位运行时,问题才得以解决

    现在,嵌入式Crystal报表在客户端机器上的Winforms应用程序中显示良好。希望这能为其他人省去一些麻烦