Использование конкретной ссылки на версию в Visual Studio 2008 - PullRequest
21 голосов
/ 05 августа 2009

У меня есть сборка Foo, в которой есть ссылка на сборочную панель (версия X.X.X.2000). В свойствах для конкретной версии установлено значение False. У меня есть как Bar (x.x.x.2000), так и Bar (x.x.x.1000) в моем местном GAC . Все хорошо.

На другом компьютере, где в GAC нет версии Bar, но Bar (x.x.x.1000) находится в том же каталоге, что и Foo, при запуске Foo произойдет сбой, заявив, что не может найти Barr (x.x.x.2000) с

Не удалось загрузить файл или сборку 'Bar, Version = x.x.x.2000, Культура = нейтральная, PublicKeyToken = YXYXYXYXXYX 'или одна из ее зависимостей. Определение манифеста расположенной сборки не соответствует сборка ссылка. (Исключение из HRESULT: 0x80131040)

Не должен ли Foo использовать Bar (x.x.x.1000), поскольку для конкретной версии задано значение False или я что-то упустил?

Может быть, я не понял, как на самом деле работает конкретная версия.

Есть еще несколько вопросов о ссылках на конкретные версии переполнения стека, но ни одна из них мне не помогла.

РЕДАКТИРОВАТЬ

для дальнейшего чтения: http://www.code -magazine.com / article.aspx? Quickid = 0507041 & page = 3

1 Ответ

25 голосов
/ 05 августа 2009

«Определенная версия» - это свойство времени сборки, предписывающее компилятору использовать доступную версию. Во время выполнения платформа все еще ищет конкретную версию сборки, которая использовалась во время сборки.

Смотрите это обсуждение на форуме: http://forums.asp.net/t/1251728.aspx

...