ProcessorArchitecture是Assembly的标识的一部分吗?

时间:2012-10-13 18:57:50

标签: .net .net-assembly

根据MSDN文档here - 程序集的标识包括以下内容:简单名称,版本号,加密密钥对和支持的文化。

但是,在向GAC添加程序集时,ProcessorArchitecture还用于唯一标识程序集。 .NET框架是否将ProcessorArchitecture视为程序集标识的一部分?

1 个答案:

答案 0 :(得分:1)

当您为程序集设置特定于版本的引用时,该引用包括体系结构:

<Reference Include="SomeAssembly, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">

其中x86也可以是MSIL(anyCPU),x64等。

但是,当试图解决程序集时 - 运行时不会坚持所定义的体系结构 - 它只会更喜欢它。也就是说,如果引用是x86程序集但当前的DLL文件是AnyCPU - 运行时将使用找到的DLL(当存在x86 DLL文件时,对于AnyCPU程序集的引用也是如此)。

(我已经在私下部署的程序集上对此进行了测试,但我认为共享程序集的探测过程 - 即GAC&#39; d程序集 - 的工作原理基本相同)。 (这当然不会违反不将x86程序集加载到x64进程中的限制,反之亦然。)