我希望使现有的.NET应用程序(WinForms和WebForms)在64位计算机上运行,并进行优化以利用64位计算机上可用的更多内存.我需要对应用程序做些什么才能利用内存?我只选择目标CPU为64位吗?选择目标与仅为所有CPU编译应用程序并让.NET在本地优化应用程序有什么好处?
Crystal Reports(在VS 2008中)是否会针对64位进行优化并利用高端内存?
您可以将目标CPU设置为"AnyCPU".这将是x86机器上的x86代码和x64机器上的x64代码.请记住,您引用的任何非托管DLL都很可能会导致问题.我不知道Crystal Reports是否对非托管DLL有任何依赖(它曾经是ActiveX废话的薄包装,现在还不确定.)
如果您的应用程序仅引用为AnyCPU编译的托管代码,那么您应该没问题.
预先指定CPU架构没有真正的"优势".这是一种处理这样一个事实的方法,即您可能需要确保应用程序仅将JIT用于一个特定的体系结构.例如,如果您使用Microsoft Jet OLEDB提供程序并且您的应用程序是针对AnyCPU编译的,则在x64 OS上它将在运行时失败,因为它将作为x64进程运行,并且没有用于Jet的x64 OLEDB驱动程序.
在这种情况下,您可以强制它以x86为目标,即使在x64操作系统上,应用程序仍然可以JIT到x86.