Связывание с версией .dll, более ранней, чем установленная в Visual Studio 2005

Прошу прощения за большой объем справочной информации, но это довольно конкретный вопрос.

У меня есть проект Visual Studio 2005, который создает файл .dll. Этот проект зависит от .dll от другой компании, BigCorp, которая устанавливается вместе с программным обеспечением BigCorp.

В идеале созданная мной dll должна использоваться с любой (обратно совместимой) версией dll BigCorp. То есть, если я свяжусь с версией 4.3.2.100, моя программа все равно будет работать, если пользователь обновит приложение BigCorp так, что .dll будет версией 4.3.3.20.

Это достаточно просто в VS2005, просмотрев список ссылок на проект, выбрав .dll и убедившись, что свойство "Определенная версия" имеет значение false.

Теперь о моем собственном вопросе: можно ли указать базовую версию .dll, которая старше, чем та, которая установлена ​​на машине, на которой строится проект? Продолжая мой предыдущий пример, на моем компьютере сборки установлена ​​версия 4.3.3.20, но я хочу, чтобы генерируемая им .dll была совместима с установками, которые не были обновлены, и была установлена ​​только версия 4.3.2.100.

Кажется, что VS разрешает путь к .dll и определяет версию среды выполнения на основе найденного файла. Попытка переопределить его, указав номер версии непосредственно в .vbproj или .csproj, т.е.

<Reference Include="BigCorp.Program.Component, Version=4.3.2.100, Culture=neutral, PublicKeyToken=abc123def456654fed321cba, processorArchitecture=MSIL">

не имеет никакого эффекта. Попытка зарегистрировать мою сборку на компьютере со старой версией завершается неудачей из-за старой доброй ошибки «Не удалось загрузить файл или сборку», потому что он пытается найти более новую версию библиотеки BigCorp .dll.

Возможно ли то, что я хочу делать?


person Community    schedule 20.10.2008    source источник
comment
У вас также есть старая версия .dll где-нибудь на вашей машине разработки?   -  person Jim Buck    schedule 20.10.2008


Ответы (1)


Вы можете сделать это, сославшись на старую DLL прямо из проекта, поэтому скопируйте файл .dll в свой проект, а затем ссылайтесь на него оттуда.

Я делаю это все время в своих различных проектах развития. Обычно я помещаю в свой проект папку «Ссылки» для хранения ссылочных библиотек DLL.

person Mitchel Sellers    schedule 20.10.2008