我目前正在64位PC上使用VS 2012,使用Crystal Reports for VS 2012。
安装Crystal Reports for VS 2012后,我注意到有两个主要文件夹:
我要部署的应用程序可以部署在32位和64位PC上,我应该参考哪些Crystal Reports DLL? x86或x64?
或者我需要有两个独立的解决方案,一个引用x86 dll,另一个引用x64?
更新
我所做的是在开发时引用x86 dll,并在我的所有部署机器上安装x86可再发行版本的crystal报表,无论其架构如何。希望能帮助你们中的一些人
答案 0 :(得分:3)
我知道这在技术上不是你问题的答案,但是因为即使在设定赏金之后它仍然没有答案,我想我无论如何都会建议......
您可能会重新考虑是否确实需要64位版本的应用程序。大多数业务线应用程序(我可以假设您正在构建的应用程序,因为您正在生成报告)并不是真正受益于64位。
您只能构建和分发32位版本(x86),它仍然可以在所有计算机上运行,无论它们是运行32位还是64位版本的Windows 。这是因为所有64位版本的Windows都包含一个运行32位代码的特殊子系统(Windows-on-Windows, or WOW64)。它完全无缝,几乎没有兼容性问题。
以这种方式部署了许多应用程序。 Visual Studio本身就是一个很好的例子:它仍然是32位代码,但由于WOW64,即使在64位版本的Windows上运行也很好。
为此,您只需将项目设置为目标x86平台,并专门引用32位DLL。由于您只构建一个二进制文件,这将极大地简化开发和分发工作,不仅在于确定要引用哪些DLL,还包括您需要测试的代码量和分发过程本身。
如果你编写的代码遵循标准习惯用法和推荐的做法,那么稍后添加64位支持(如果它确实证明对你的案例有一些好处)将是一个相当简单的操作。 .NET Framework非常好地抽象出特定于平台的差异;这就是他们如何提供“任何CPU”定位选项。
除此之外,如果我被允许推测(因为我对Crystal Reports没有特别的经验),我认为公共接口对于32位和64位DLL都是相同的。
在这种情况下,您可以仅为您的开发工作引用32位版本,然后根据您是构建32位还是64位来配置构建脚本以选择正确的DLL版本二进制的。
当然,安装程序需要做出相同的选择,无论是在安装期间(如果您使用的是统一安装程序),还是在构建安装程序本身时(如果您有单独的32位和64位安装程序)