我最近给自己做了一个发现——在构建.NET应用程序的时候,我可以选择目标平台的位深度。在互联网上阅读很有用,我所理解的只是我什么都不懂。
我自己是javaanist。从小我就认为收藏什么不重要,重要的是比特深度jvm。但在这里,显然,一切都不同了......
请帮我解决这个问题:
您需要构建一个使用第三方c++库的应用程序。-bit -ki32也可用于库。该应用程序不需要超强性能,因此-bit 版本将适合我。64.dll32
32我可以仅使用-bit将我的项目构建为32-bit.dll并期望整个事情在32-bit 和64-bit 系统中都可以工作吗?如果没有,最好的方法是什么?
还有几个小问题可以帮助我理解我在做什么:
64为位系统构建的应用程序.NET是否无法在位系统上运行32,或者它与原生应用程序的工作方式略有不同?
我是否正确理解为不同位深度的系统构建的应用程序在不同的虚拟机上运行,因此在64-bit 版本上安装了两个位深度的windows虚拟机?CLR
一切都和看起来一样:32 位版本几乎可以在任何地方运行,64 位版本需要 64 位系统。
但是,如果您同时拥有其他人的库的两个版本,那么最好不要让您的程序集与位数(AnyCPU)相关联,并且在加载库时,加载与当前进程的位数匹配的那个。
详细信息 - 此处:根据系统的位数加载不同的 dll
' 32 位版本将无法在没有 32 位应用程序支持的 64 位系统上运行,例如,这在 Windows Server Core 上是可能的(感谢 PetSerAl 的澄清)