【问题标题】:Force install of Crystal Reports 32-bit runtime强制安装 Crystal Reports 32 位运行时
【发布时间】:2015-04-12 14:43:30
【问题描述】:

我有一个为 32 位 (x86) 编译的 Winforms 应用程序,它有一个同样针对 x86 的安装项目。

我在我的开发机器和安装项目中安装了SAP Crystal Reports, version for Visual Studio (version 13.0.13),在依赖项下我检查了Crystal Reports Runtime Engine for .Net Framework 选项。 Windows Installer 3.1 也被检查为依赖项。

在 32 位机器上安装没有问题,但是当我出于某种原因在 64 位机器上安装时,安装程​​序会安装 64 位版本的 Crystal Reports Runtime Engine。然后,当您尝试打印报告时,应用程序会出现异常,因为它需要安装 32 位版本。如果我手动安装 Crystal Reports 运行时的 32 位版本,则报告可以正常工作,但我希望 Crystal Reports 的安装能够从应用程序安装中正常工作。

所以我的问题有两个:1) 有谁知道我遇到的这个问题是Windows Installer 问题还是特别是Crystal Reports 问题? 2) 我如何在Visual Studio 安装项目中指定应该始终安装 32 位版本的 Crystal Reports 运行时,即使安装在 64 位机器上也是如此。

【问题讨论】:

  • 如果是你的app,为64位机器构建64位版本难吗?也许不理想,但也许会解决这个问题。 64 位运行时通常包含 64 位和 32 位组件,因为人们在 64 位机器上运行 32 位和 64 位应用程序。有点奇怪,CR 不这样做,并且需要您安装两个运行时。

标签: visual-studio-2010 x86 64-bit setup-project crystal-reports-2010


【解决方案1】:

以下是需要完成的过程。详情请查看link

分辨率

在 bootstrapper 文件夹中找到 Product.xml 文件: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\Crystal Reports for .NET Framework 4.0

注释掉下面的 BypassIf 条目以在目标机器上安装 32 位版本的 CRRuntime redist

<!--  ByPass if the Processor is not x86 --> 
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" />

【讨论】:

  • 感谢您发布链接。我会在某个时候测试这个。虽然目前这对我们来说不再是问题,因为我们通过制作 32 位 CR 的副本并为该副本提供与 64 位 CR 相同的名称来解决它。这样,使用哪个安装程序并不重要,因为它们都是 32 位 CR。我欣然承认,这是一个 hack 解决方案,但它对我们有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
相关资源
最近更新 更多