Nul*_*nce 7 .net deployment 64-bit crystal-reports 32bit-64bit
我目前正在使用Crystal Reports for VS 2012在64位PC上使用VS 2012.
安装Crystal Reports for VS 2012后,我注意到有两个主要文件夹:
我要部署的应用程序可以部署在32位和64位PC上,我应该参考哪些Crystal Reports DLL?x86还是x64?
或者我需要有两个独立的解决方案,一个是x86 dlls参考,另一个是x64?
更新:
我所做的是在开发时引用x86 dll,并在我的所有部署机器上安装x86可再发行版本的crystal报表,无论其架构如何.希望能帮助你们中的一些人
我知道这在技术上不是你问题的答案,但由于即使在设置赏金后它仍然没有答案,我想我无论如何都可以建议它......
您可能会重新考虑是否真的需要 64 位版本的应用程序。大多数业务线应用程序(我可以假设这是您正在构建的应用程序,因为您正在从中生成报告)并没有真正从 64 位中受益。
您只能构建和分发 32 位版本 (x86),它仍然可以在所有计算机上运行,无论它们运行的是 32 位还是 64 位版本的 Windows。这是因为所有 64 位版本的 Windows 都包含运行 32 位代码的特殊子系统( Windows-on-Windows 或 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 位安装程序)做出相同的选择。