2009-11-26 116 views
1

我重构旧的程序来使用VS2008(而不是VS2005)和2003年的水晶报表合并模块在客户机上不再起作用。水晶报表错误:无法找到CrystalDecisions.Windows.Forms版本10.2.3600

我使用VS2008与捆绑在一起的CR版本。从SAP网站下载的CR10合并模块无法工作,也没有CR x86 msi。

Could not load file or assembly 'CrystalDecisions.Windows.Forms, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.

我用Google搜索这个错误死刑,只能找到请与此确切的错误帮助...

回答

1

我终于弄清楚了......终于。 (CR专家......请纠正我,如果我错过了细节或得到他们错了)

该业务对象是由SAP于2007年收购是一个主要障碍答案的事实。绝大多数论坛链接都指向旧的Business Objects网站,并且不再可用(SAP已决定无法将其中90%指向其主页)。这极大地减少了这些帖子的帮助。

我的困惑的第一个来源是我正在处理的Crystal Reports版本是Crystal Reports BASIC 2008.这是与Visual Studio 2008捆绑在一起的版本。版本11和12是独立的,并不是我所做的寻找。

使用的MSM(包装DLL)和微星(运行时安装)对于Crystal Reports 2008(单机版),我试过,这就是为什么它没有工作。我还尝试在我的安装程序中使用先决条件将“Crystal Reports”与安装捆绑在一起。没有运气。

  1. 我第一次尝试移动从C的DLL:\ Program Files文件\ Common Files文件\的Business Objects \ 2.7 \管理我的应用程序(或告诉VS2008的BIN目录,包括他们在编译时的bin目录)。然后,它找不到crystaldecisions.reportappserver.commlayer,并且没有大量的复制和粘贴DLL可以解决此问题。
  2. 我然后导航全局程序集缓存(C:\ WINDOWS \组装),发现我的机器上,这些DLL是在正确的版本,但没有在客户机上(通过将它们复制到bin文件夹DOS发出版本/许可错误)。
  3. 然后我发现一个难以找到的压缩文件,其中包含我需要的版本 - 但它是VS2005的软件包!我结束了使用位于cr_net_2005_mergemodules_mlb_x86.zip中的msm文件。我也将我的编译选项从“任何CPU”更改为“x86”。不知道这是否有帮助,但它现在起作用。

所以这是我的磨难。希望这可以帮助别人!

1

您的应用程序显然是保持水晶的CR10版本参考 - 你需要更新这些更新的版本。您可以通过双击我的项目,选择引用,删除现有的水晶(可能在其旁边的版本10.2.3600.0),并用匹配的11.5版本替换它们来完成此操作。我建议先添加新的,然后删除旧的 - 这样你可以跟踪。只要你使用的功能尚未从新版本中删除(这不太可能),它会正常工作。之后,您将能够使用VS2008附带的合并模块来部署Crystal。

+1

升级水晶报告....这个想法吓了我一命;-) –

+0

只是应用程序引用 - 不需要自己触摸报告。 – MartW

3

我从here下载了DLL,然后引用它们的位置并解决了问题。

0

只需添加一个表格并将其链接到一个新的crystalreportviewer,这样您将看到错误消失。