Evey 时不时地看到 x86 和 x64 版本的 .NET 程序集。请考虑以下用于 SharePoint 的 Web 部件。为什么开发人员不只提供一个版本并让 JIT 编译器整理其余部分?当我看到这些类型的产品时,是否只是开发人员决定使用像ngen这样的工具来创建本机映像以避免 JIT?
有人请在这里帮助我,我觉得我错过了一些值得注意的东西。
更新
根据我在下面得到的信息,提供 x86 和 x64 版本是因为以下一个或多个原因:
开发人员希望避免 JIT,并使用 ngen.exe 之类的工具针对给定架构创建了他的代码的本机映像。
该程序集包含特定于平台的 COM 调用,因此将其构建为 AnyCPU 毫无意义。在这些情况下,针对不同平台的构建可能包含不同的代码。
程序集可能包含使用 pinvoke 的 Win32 调用,它不会被 JIT 重新映射,因此构建应该以它绑定到的平台为目标。