.net Processor架构是否为组件的一部分';谁的身份?

.net Processor架构是否为组件的一部分';谁的身份?,.net,.net-assembly,.net,.net Assembly,根据MSDN文档-程序集的标识由以下内容组成:简单名称、版本号、加密密钥对和支持的区域性 但是,在向GAC添加程序集时,ProcessorArchitecture还用于唯一标识程序集。.NET framework是否将ProcessorArchitecture视为程序集标识的一部分?当您为程序集设置特定于版本的引用时,该引用包括以下体系结构: <Reference Include="SomeAssembly, Version=1.0.0.0, Culture=neutral, proces

根据MSDN文档-程序集的标识由以下内容组成:简单名称、版本号、加密密钥对和支持的区域性


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

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

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

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

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

(我已经在私有部署的程序集上对此进行了测试,但我假设共享程序集(即GAC的程序集)的探测过程基本相同)。
(这当然不会违反不将x86程序集加载到x64进程的限制,反之亦然).

您似乎已经回答了自己的问题-您说程序集标识由什么组成,然后询问它不由什么组成。我认为这与标识无关-这是操作系统需要的,以便了解加载程序集所需的体系结构。