.net - 开发时我应引用哪个版本的 Crystal Reports(32 位或 64 位)?

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

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

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

  • 通用\SAP BusinessObjects Enterprise XI 4.0\win64_x64
  • 通用\SAP BusinessObjects Enterprise XI 4.0\win32_x86

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

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

更新:

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

最佳答案

我知道这在技术上并不是你问题的答案,但由于即使在设置赏金后它仍然没有得到解答,我想我还是可以建议它......

您可能会重新考虑是否真的需要 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 的公共(public)接口(interface)是相同的。

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

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

关于.net - 开发时我应引用哪个版本的 Crystal Reports(32 位或 64 位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17227265/

相关文章:

java - 为 JavaFX 项目构建而不创建 exe

c# - 如何使用mysql命令条件语句在 Crystal 报表中显示数据?

crystal-reports - Crystal 报表 : why is memo-type field truncated at 255 characters?

java - 有没有等同于 Java Jar 或 .NET DLL 的 JavaScript?

Ruby bundle 创建一个独立的包

linux - 在这种情况下,Crystal Reports 是可行的选择吗?

c# - 有没有办法调用 .NET Framework 离线安装?

c# - .NET 中的 "US Eastern Standard Time"与 "Eastern Standard Time"

asp.net - 使用 Web Deploy 部署 .NET 4.5 Web 应用程序

c# - MVC 长时间运行 EF 存储过程调用