У меня есть приложение, которое ссылается на сборку "Microsoft.Xna.Framework, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = 6d5c3888ef60e27d". Я создал проект установщика, который устанавливает эту сборку в GAC (запустив установщик перенаправления XNA).
Однако, когда эта сборка впервые используется, я получаю исключение во время JITing. Затем я попытался 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. Я открыл свое изображение в Reflector, и ссылка там отображается правильно. Я также проверил, что никакая другая сборка в иерархии зависимостей не загружает поддельную версию 1.0.0.0. На самом деле, версия 1.0.0.0 нигде не существует ни на платформе разработки, ни на тестовой машине.
Однако, пытаясь развернуть ссылку на Microsoft.Xna.Framework на тестовом компьютере, Reflector считает (правильно), что ссылочной версией сборки является 2.0.0.0, но он не может найти ее, хотя я вижу ее в GAC при просмотре c: \ windows \ Assembly в проводнике.
Пожалуйста, помогите.