【问题标题】:Where are the Crystal Report .Net assemblies placed when installing the redistribution package?安装再分发包时,Crystal Report .Net 程序集放在哪里?
【发布时间】:2011-01-04 18:48:29
【问题描述】:

根据Crystal_Runtime2008.txt 文件,运行任何Crystal Reports 10.5 redistributablesCRRedist2008_x86.msiCRRedist2008_x64.msiCRRedist2008_ia64.ms)应该部署以下文件:

CRVsPackageLib.dll CrystalDecisions.CrystalReports.Design.dll CrystalDecisions.CrystalReports.Engine.dll CrystalDecisions.Data.AdoDotNetInterop.dll CrystalDecisions.Enterprise.Desktop.Report.dll CrystalDecisions.Enterprise.Framework.dll CrystalDecisions.Enterprise.InfoStore.dll CrystalDecisions.Enterprise.PluginManager.dll CrystalDecisions.Enterprise.Viewing.ReportSource.dll CrystalDecisions.Keycode.dll CrystalDecisions.ReportAppServer.ClientDoc.dll CrystalDecisions.ReportAppServer.CommLayer.dll CrystalDecisions.ReportAppServer.CommonControls.dll CrystalDecisions.ReportAppServer.CommonObjectModel.dll CrystalDecisions.ReportAppServer.Controllers.dll CrystalDecisions.ReportAppServer.DataDefModel.dll CrystalDecisions.ReportAppServer.DataSetConversion.dll CrystalDecisions.ReportAppServer.ObjectFactory.dll CrystalDecisions.ReportAppServer.ReportDefModel.dll CrystalDecisions.ReportAppServer.XmlSerialize.dll CrystalDecisions.ReportSource.dll CrystalDecisions.Shared.dll CrystalDecisions.Web.dll CrystalDecisions.Windows.Forms.dll

但我无法在 PC 上的任何地方找到这些。有谁知道他们安装到什么位置? .txt 文件中列出的所有其他 DLL 都出现在

c:\Program Files\Business Objects\Common\2.8\bin

【问题讨论】:

  • 顺便问一下有什么问题吗? redist 是否安装不正确?
  • 我不确定..我正在尝试运行一个只有 VS 2010 + CR redist 包的应用程序,它崩溃了,无法找到程序集。
  • 你知道CR 10.5是VS 2008自带的水晶报表吗? 2010 有其他版本吗?
  • 2010 根本没有。直到 12 月 SAP 给出最终决定(sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/14514
  • 最后,我能够使用 CR 2008 SP2 redist 包 (wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=56787567),从我需要的 GAC 中提取两个程序集,一切都很好。

标签: crystal-reports


【解决方案1】:

GAC

从 .NET Framework 4 开始,默认位置为 全局程序集缓存是 %windir%\Microsoft.NET\assembly。在早些时候 .NET Framework 的版本,默认位置是 %windir%\程序集

【讨论】:

  • 他们确实在那里......现在要弄清楚为什么应用程序拒绝识别他们的存在:)
  • 如果有人想知道如何从 GAC 中提取它们,这里有一个不错的简单方法:stackoverflow.com/questions/714907/…
  • 你有没有发现为什么应用程序不会从 GAC 加载它们?
【解决方案2】:

在应用程序的运行版本(例如您的开发机器)上使用 Process Explorer,以查看其所有 DLL 的加载位置。

编辑:

进程资源管理器是查找从 GAC 或任何其他位置加载到任何 Windows 进程中的 DLL 的好方法。这种方法(使用 ProcEx)是通用的,但 IMO 在许多情况下都很有用。 ProcEx 确实会告诉您正在从 GAC 加载程序的 Crystal Redist。

建议编辑:

以这种方式查找 .NET DLL:

  1. 在 Process Explorer 的进程列表中查找您的任务
  2. 双击任务显示任务属性
  3. 在 .NET Assemblies 选项卡中打开加号 (+),显示 App Domain 等(只有 .NET 进程会有此选项卡。非 .NET 进程根本没有此选项卡)

【讨论】:

  • Paul Sasik 先生,请您重新编辑您的答案,以便我投票,
  • 我通过这种方式在 Process Explorer 软件中创建了 DLL 引用:1-查找我的任务,2-双击显示任务属性的任务,在 .NET 程序集选项卡,屏幕左侧,打开加号(+) 符号,显示 App Domain 是真的,也感谢您的时间 Paul Sasik 先生,对不起我最后的判断,谢谢
  • @AliSarshogh:再次感谢您的重新考虑。请在答案中添加您的评论。在答案中分享这些信息的好主意!
猜你喜欢
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2015-04-17
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
相关资源
最近更新 更多