2

我有一个在 VS2010 和 .Net framework 4.0 中开发的 Windows 应用程序。我们在应用程序中使用了 Crystal 报表。

我们需要按照以下链接通过包含水晶报表运行时和所需的可视化 C++ 依赖项来创建安装程序: http ://wiki.sdn.sap.com/wiki/display/BOBJ/Using+Crystal+Reports+for+Visual +Studio+2010+Merge+Modules+(MSM)+to+create+a+Setup+project

到目前为止,我们尝试了以下 2 种解决方案作为我们努力的一部分。但是,当使用安装程序在目标机器上安装应用程序时,我们会遇到错误。

第一个解决方案包括使用以下合并模块文件作为安装程序的一部分(根据上面的链接):
1. CRRuntime_12_3.msm
2. Microsoft_VC80_ATL_x86.msm
3. Microsoft_VC80_CRT_x86.msm
4. Microsoft_VC80_MFC_x86.msm
5. Microsoft_VC80_OpenMP_x86.msm

第二个包括使用以下合并模块文件作为安装程序的一部分(根据此站点:http ://csharp.net-informations.com/crystal-reports/csharp-crystal-merge-module.htm ):
1. CRRuntime_12_3。 msm
2. CrystalReportsRedist2005_x86.msm
3. Microsoft_VC80_ATL_x86.msm
4. policy_8_0_Microsoft_VC80_ATL_x86.msm

作为故障排除步骤,我们在目标机器上安装了可视 C++ 依赖项,并尝试仅使用 Crystal Report 运行时文件 (CRRuntime_12_3.msm) 安装应用程序。这也是不成功的。

到目前为止收到的所有错误本质上都是相似的,消息说注册 dll 失败(querypanel.dll、crtslv.dll)。

目标机器的操作系统为 Windows 7,并安装了以下内容: .NET framework 4.0 Client Profile .NET framework 4.0 Extended Microsoft visual C++ 2005 redistributable(我将卸载它,因为我需要通过添加此依赖项来创建安装程序)

任何有关解决此问题的帮助将不胜感激。

4

1 回答 1

2

我找到了两种解决方法。我将为遇到相同问题的其他人解释它们。

在第一个解决方案中,您需要创建 2 个安装程序。一种将安装 C++ 依赖项的工具。此安装程序应仅包含 C++ 合并模块:

  1. Microsoft_VC80_ATL_x86.msm
  2. Microsoft_VC80_CRT_x86.msm
  3. Microsoft_VC80_MFC_x86.msm
  4. Microsoft_VC80_MFCLOC_x86.msm
  5. Microsoft_VC80_OpenMP_x86.msm

您需要确保在检测到的依赖项中添加了以下策略文件。这些策略文件应该在位于 C:\Program Files (x86)\Common Files 的合并模块文件夹中可用。您需要刷新检测到的依赖项文件夹以确保已添加策略文件:

  1. policy_8_0_Microsoft_VC80_ATL_x86
  2. policy_8_0_Microsoft_VC80_CRT_x86
  3. policy_8_0_Microsoft_VC80_MFC_x86
  4. policy_8_0_Microsoft_VC80_MFCLOC_x86
  5. policy_8_0_Microsoft_VC80_OpenMP_x86

接下来,您需要创建第二个安装程序,它将包含您的应用程序输出和 Crystal Report 运行时合并模块 ieCRRuntime_12_3.msm。

按顺序运行这些安装程序并进行宾果游戏,您应该让应用程序中的水晶报告按预期工作。

第二种解决方案是通过安装以下2个组件直接安装C++依赖项:

  1. Visual C++ 2005 SP1 可再发行包
  2. Microsoft Visual C++ 2005 Service Pack 1 可再发行包 ATL 安全更新

然后运行上面创建的第二个安装程序,其中包括应用程序输出和水晶报表运行时合并模块,一切都应该正常工作。

假设您已经使用 32 位水晶报告运行时构建了一个 32 位应用程序,如果它是 64 位操作系统,您可能会遇到另一个处理目标系统配置的问题。在这种情况下,您需要调整配置设置并确保您的应用程序仅作为 32 位应用程序安装。否则会报错:要么水晶报告注册表项权限不足,要么......

于 2013-06-04T06:50:16.127 回答