0

アセンブリ「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を表示します。

助けてください。

4

1 に答える 1

0

(注 - 外部の 1.0 dll に関する以前の日付の編集)

外部の dll を使用していますか? おそらく、1.0 バージョンを参照しているサードパーティの xna dll です。これが最初に発見された場合、すべての賭けが無効になる可能性があります。リフレクターで外部の dll を調べてみて、それらが参照しているバージョンを確認してください。xna dllのバージョン ポリシーを追加することもできます。

于 2009-01-16T10:58:16.497 に答える