2010-01-13 3 views
5

Я получаю сообщение об ошибке, как это в приложении,Ссылка на нестандартную версию сборки?

Не удалось загрузить файл или сборку ' MySql.Data, Version = 6.2.2.0, Culture = нейтрален, PublicKeyToken = c5687fc889699c44d' или один его зависимостей. Расположенное смену манифеста сборки не соответствует ссылке на сборку.

Ожидается, что на этой установке установлена ​​предыдущая версия .dll.

Могу я сказать (в Vs2008) ссылку на эту страницу MySQL.data.dll и не заботиться о ее версии? Ссылка на MYSQL.data.dll в проекте имеет свойство «Специфическая версия», хотя установка его в значение false не дает никакой разницы.

Я хорошо осведомлен о импликации, если этот .dll двоичный, несовместимый с требуемым.

ответ

5

SpecificVersion не может решить вашу проблему, что работает только во время компиляции. Вы должны восстановить свою программу за минимальные сюрпризы. Или вы можете использовать <bindingRedirect> element в файле .exe.config.

+0

Я знаю о неожиданностях, которые могут возникнуть. Вопрос более общий. Я собираюсь создать собственные сборки, и я хочу иметь возможность обновлять эти .dll отдельно, не перестраивая .exe, ссылаясь на них. – Anonym

+3

Не меняйте [AssemblyVersion], если это просто исправление ошибок, t изменить открытый интерфейс классов. Обновите только [AssemblyFileVersion]. Например, сборки .NET 3.5 по-прежнему находятся на уровне 2.0.0.0. Тот факт, что MySql изменил версию, - это сильный намек на необходимость перекомпиляции. –

+0

+1 для AssemblyVersion vs AssemblyFileVersion –

-2

Да, вы можете. Выберите ссылочную dll, а в окне свойств установите «конкретная версия» на False.

+0

Как я уже говорил, я сделал это безрезультатно. – Anonym

+0

Это не влияет на RunTime - только во время компиляции – Rodney

Смежные вопросы