.net 将程序集编译为x64有什么好处吗?

.net 将程序集编译为x64有什么好处吗?,.net,x86,64-bit,compilation,.net,X86,64 Bit,Compilation,假设我有一个.NETFramework 3.5SP1/CLR2.0应用程序,它需要在x86和x64平台上运行。假设出于任何原因,我需要创建单独的x86和x64安装程序 由于我有一个特定于x64的安装程序,将应用程序本身重新编译为x64而不是以“AnyCPU”为目标会有什么好处 将目标设置为x64是否会改变所生成程序集的标题信息之外的任何内容?只要您不使用任何程序集,最好将其保留为“AnyCPU”,让JIT针对体系结构。我发现包装程序集需要为x86平台编译,否则会在x64机器上引发BadImage

假设我有一个.NETFramework 3.5SP1/CLR2.0应用程序,它需要在x86和x64平台上运行。假设出于任何原因,我需要创建单独的x86和x64安装程序

由于我有一个特定于x64的安装程序,将应用程序本身重新编译为x64而不是以“AnyCPU”为目标会有什么好处


将目标设置为x64是否会改变所生成程序集的标题信息之外的任何内容?

只要您不使用任何程序集,最好将其保留为“AnyCPU”,让JIT针对体系结构。

我发现包装程序集需要为x86平台编译,否则会在x64机器上引发BadImageFormatException。然后它就像滚雪球一样,因为引用该程序集的所有程序集也需要为x86平台编译


可能是我做错了什么,但这就是我发现的。如果我没有使用本机DLL,那么我会将所有程序集都保留为“AnyCPU”。

我对.net程序集了解不多,但一般来说,如果您知道一个程序将只在x64体系结构中执行,使用x64机器代码编译它,您将获得一些性能改进,并且不会损失任何东西(只要您已经知道它将仅在x64环境中执行)。

如果指定x64,它会更改程序的一些默认内存设置,使其在内存压力较大的程序中性能稍高。使用x64()编译时会分配更大的线程堆栈

(删除了标记程序集,因为几乎所有带有该标记的消息都与assembler有关,而不是.NET程序集)