我有一个在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
到目前为止,我们尝试了以下两种解决方案。但是,使用安装程序在目标计算机上安装应用程序时会出现错误。
第一个解决方案包括使用以下合并模块文件作为安装程序的一部分(如上面的链接):
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
正如故障排除步骤一样,我们在目标计算机上安装了Visual C ++依赖项,并尝试仅使用Crystal Report运行时文件(CRRuntime_12_3.msm)安装应用程序。这也是不成功的。
到目前为止收到的所有错误本质上都是类似的,消息称无法注册dll(querypanel.dll,crtslv.dll)。
目标计算机将Windows 7作为操作系统并安装如下: .NET framework 4.0客户端配置文件 .NET framework 4.0 Extended Microsoft Visual C ++ 2005可再发行(我将卸载它,因为我需要通过添加此依赖项来创建安装程序)
任何有关解决此问题的帮助都将受到赞赏。
答案 0 :(得分:2)
我找到了2个解决方法。我会为遇到同样问题的其他人解释这些问题。
在第一个解决方案中,您需要创建2个安装程序。一个将安装C ++依赖项的人。此安装程序应仅包含C ++合并模块:
您需要确保在检测到的依赖项中添加以下策略文件。这些策略文件应位于位于C:\ Program Files(x86)\ Common Files的合并模块文件夹中。您需要刷新检测到的依赖项文件夹以确保已添加策略文件:
接下来,您需要创建第二个安装程序,它将包含您的应用程序输出和Crystal Report运行时合并模块,即CRRuntime_12_3.msm。
按顺序和宾果游戏运行这些安装程序,您应该在应用程序中按预期运行水晶报告。
第二个解决方案是通过安装以下两个组件来直接安装C ++依赖项:
然后运行上面创建的第二个安装程序,其中包括应用程序输出和crystal report运行时合并模块,一切都应该正常工作。
假设您使用32位晶体报告运行时构建了一个32位应用程序,如果它是64位操作系统,您可能会遇到另一个处理目标系统配置的问题。在这种情况下,您需要使用配置设置并确保您的应用程序仅安装为32位应用程序。否则你会收到一个错误说:水晶报告注册表密钥权限不足或.......