【问题标题】:Which version of Crystal Reports do I reference (32-bit or 64-bit) when developing?开发时我参考哪个版本的 Crystal Reports(32 位或 64 位)?
【发布时间】:2013-06-18 02:44:19
【问题描述】:

我目前在 64 位 PC 上使用 VS 2012,使用 Crystal Reports for VS 2012。

在为 VS 2012 安装 Crystal Reports 后,我注意到有 2 个主要文件夹:

  • Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64
  • Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86

我要部署的应用程序可以部署在 32 位和 64 位 PC 上,那么我应该参考哪些 Crystal Reports DLL? x86 还是 x64?

或者我是否需要 2 个单独的解决方案,一个引用 x86 dll,另一个引用 x64?

更新:

我所做的是在开发时引用 x86 dll,并在我的所有部署机器上安装 x86 可再发行版本的水晶报告,无论其架构如何。希望对你们中的一些人有所帮助

【问题讨论】:

  • 您打算使用像InstallShieldChocolatey 这样的包管理器吗?
  • 是的,我正在使用 InstallShield 的快速版本
  • 如果您构建应用程序的 64 位版本,它会自动构建 32 位版本吗?
  • 似乎当我引用x64版本时,打包到安装程序项目中的水晶报表dll也是64位的
  • 构建 32 位版本的应用程序需要做什么?您可能想更新您的问题,而不是发表评论。

标签: .net deployment crystal-reports 64-bit 32bit-64bit


【解决方案1】:

我知道从技术上讲,这不是您问题的答案,但由于即使在设置了赏金之后仍然没有答案,所以我想我还是会建议它......

您可能会重新考虑是否真的需要 64 位版本的应用程序。大多数业务线应用程序(我可以假设这是您正在构建的,因为您正在从中生成报告)并没有真正受益于 64 位。

您只能构建和分发 32 位版本 (x86),它仍然可以在所有机器上运行,无论它们运行的​​是 32 位还是 64 位版本的 Windows .这是因为所有 64 位版本的 Windows 都包含一个运行 32 位代码的特殊子系统 (Windows-on-Windows, or WOW64)。它是完全无缝的,几乎没有可说的兼容性问题。

很多应用都是以这种方式部署的。 Visual Studio 本身就是一个很好的例子:它仍然是 32 位代码,但即使在 64 位版本的 Windows 上也能正常运行,这要归功于 WOW64。

为此,您只需将项目设置为以 x86 平台为目标,并专门引用 32 位 DLL。由于您将只构建一个二进制文件,因此这将大大简化开发和分发工作,不仅在确定要引用的 DLL 方面,而且在您需要测试的代码量和分发过程本身方面。

如果您编写了遵循标准习惯用法和推荐做法的良好代码,那么稍后添加 64 位支持(如果确实证明对您的情况有一些好处)将是一个相当简单的操作。 .NET Framework 非常好地抽象出特定于平台的差异;这就是他们可以提供“任何 CPU”定位选项的方式。


除此之外,如果允许我推测(因为我对 Crystal Reports 没有特别的经验),我认为 32 位和 64 位 DLL 的公共接口是相同的。

在这种情况下,您可以只为您的开发工作引用 32 位版本,然后配置您的构建脚本以根据您是构建 32 位还是 64 位来选择正确的 DLL 版本二进制。

当然,安装程序需要做出相同的选择,无论是在安装期间(如果您使用的是统一安装程序)还是在您自己构建安装程序时(如果您有单独的 32 位和 64 位安装程序) .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2015-01-18
    • 2021-07-08
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多