2

こちらのMSDNドキュメントによると、アセンブリのIDは、単純な名前、バージョン番号、暗号化キーペア、およびサポートされているカルチャで構成されます。

ただし、GACにアセンブリを追加する際、ProcessorArchitectureはアセンブリを一意に識別するためにも使用されます。.NET FrameworkはProcessorArchitectureをアセンブリIDの一部として扱いますか?

4

1 に答える 1

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されたアセンブリ)のプロービングプロセスはほとんど同じように機能すると思います)。(もちろん、これはx86アセンブリをx64プロセスにロードしないという制限に違反することはありません。その逆も同様です)。

于 2012-10-13T20:49:56.413 に答える