Dea*_*ing 34
不,64位进程只能加载64位DLL,而32位进程只能加载32位DLL.你可能想到的是64位操作系统可以运行32位进程.
.NET的主要问题是 - 在VS2010之前 - 可执行项目默认为"AnyCPU",这意味着它将以其运行的操作系统的"本机"格式加载(因此对于32位版本的Windows而言是32位64位64位版本的Windows).问题是,如果你在32位Windows上测试你的应用程序(比如说),那么如果加载32位DLL并尝试在64位Windows上运行它可能会中断.
在VS2010中,默认情况下,它们将所有可执行项目默认为"x86"(即32位),这在很大程度上缓解了问题.
您可以使用WOW32仿真在64位操作系统上运行x86应用程序.我遇到的一些陷阱 - 你不能在同一个过程中混合和匹配32/64.因此,如果您打算以64运行IIS,则所有程序集都需要为64,否则您将必须以32位模式运行.64位比其他应用更有助于某些应用.运行SQL服务器的64位版本提供了优于32位版本的几个优点,最大的优点是,您可以在目标服务器上安装超过4 GB的内存,并且SQL将能够使用超过4 GB的内存.它对IIS没有多大好处,因为IIS通常不能使用超过3 GB的内存.我的建议是尽可能确保你的SQL server/os/version是64.它不会成为一个.如果其他服务器是64,那么巨大的差异,但通常更容易使用并找到32位版本.