B.K*_*.K. 8 .net gac gac-32 gac-64 gac-msil
是什么原因导致全局程序集缓存(GAC)中的所有程序集都不是构建为MSIL?我看到x86和AMD64一些程序集使用的体系结构类型,如下例所示,但不适用于其他程序集:
C:\Windows\assembly\

为什么System.Data建了两个不同的处理器架构,而System.Core为MSIL?
C:\Windows\Microsoft.NET\assembly

在上面显示的第二版GAC下可以看到类似的模式.程序集分为不同的体系结构,但并非所有体系结构都构建在32/64版本中 - 有些只是MSIL.
Jar*_*lls 10
编译库时,可以选择"任何CPU"或特定处理器体系结构.
"任何CPU"库只需要GAC中的单个条目,整个程序集将编译为MSIL.
其他程序集需要为每个体系结构使用不同的库 这些库是为每种CPU类型构建的,GAC中有多个副本.最常见的原因是包含非托管代码或加载特定于体系结构的本机dll.
在您的示例中,System.Core可能是完全托管的代码,而System.Data可能构建在一堆本机Windows库之上.
以32位模式运行的应用程序将加载32位版本的库,而以64位模式运行的应用程序将加载64位版本.
| 归档时间: |
|
| 查看次数: |
2586 次 |
| 最近记录: |