アセンブリ「Microsoft.Xna.Framework、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=6d5c3888ef60e27d」を参照するアプリケーションがあります。このアセンブリをGACにインストールするインストーラープロジェクトを作成しました(XNA redistインストーラーを実行することにより)。
ただし、このアセンブリを最初に使用すると、JIT中に例外が発生します。次に、画像をngenしようとしましたが、ngenは次のエラーメッセージを表示します。
Failed to load dependency Microsoft.Xna.Framework of assembly x,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null because of the following
error : The specified module could not be found. (Exception from HRESULT: 0x8007007E)
バージョンが1.0.0.0であり、PublicKeyTokenが欠落しており、偽のアセンブリが存在しないことに注意してください。JITerとngenがこの不良バージョンのアセンブリをロードしようとする原因は何ですか?
アセンブリの正しいバージョンはGACにあります。リフレクターで画像を開いたところ、参照が正しく表示されています。また、依存関係階層内の他のアセンブリが偽の1.0.0.0バージョンをロードしないことも確認しました。実際、1.0.0.0バージョンは、開発ボックスにもテストマシンにも存在しません。
ただし、テストマシンでMicrosoft.Xna.Frameworkへの参照を展開しようとすると、Reflectorは参照されているアセンブリバージョンが2.0.0.0であると(正しく)考えますが、GACで表示されている場合でも、それを見つけることができません。エクスプローラーでc:\ windows\assemblyを表示します。
助けてください。