当前位置:  开发笔记 > 编程语言 > 正文

为什么.NET开发人员提供32位/ 64位版本的.NET程序集?

如何解决《为什么.NET开发人员提供32位/64位版本的.NET程序集?》经验,为你挑选了2个好方法。

Evey现在然后我看到了.NET程序集的x86和x64版本.考虑以下适用于SharePoint的Web部件.为什么开发人员不会只提供单个版本并让JIT编译器对其余版本进行排序?当我看到这些类型的产品时,开发人员是否决定使用像ngen这样的工具创建本机映像以避免JIT?

有人请帮帮我,我觉得我错过了一些注意事项.

更新

从我下面提到的,提供x86和x64版本是因为以下一个或多个原因:

    开发人员希望避免JITing并创建他的代码的本机映像,使用像ngen.exe这样的工具来定位给定的体系结构.

    程序集包含特定于平台的COM调用,因此无需将其构建为AnyCPU.在这些情况下,针对不同平台的构建可能包含不同的代码.

    程序集可能包含使用pinvoke的Win32调用,它不会被JIT重新映射,因此构建应该以它所绑定的平台为目标.

Tom Anderson.. 6

如果他们使用特定的非.Net API,那么可能有两个代码库,一个完美的例子是COM控件.

正如你所提到的,ngen也是另一个很好的理由.



1> Tom Anderson..:

如果他们使用特定的非.Net API,那么可能有两个代码库,一个完美的例子是COM控件.

正如你所提到的,ngen也是另一个很好的理由.



2> Andy Dent..:

编译.net应用程序时,必须在Build Settings中选择Platform Target.选择是AnyCPU,x86和x64.

常见的错误是在项目中指定AnyCPU,其中包括为x86编译的本机DLL.这将导致在64位计算机上运行时出错,这是在64位计算机上进行测试的一个很好的理由.

因此,为了支持被其他依赖项强迫的人直接为x86或x64构建,程序集提供了这两者.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有