Связывание с версией .dll старше установленной в Visual Studio 2005 - PullRequest
1 голос
/ 20 октября 2008

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

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

В идеале создаваемая мной библиотека должна использоваться с любой (обратно совместимой) версией библиотеки 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">

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

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

1 Ответ

1 голос
/ 20 октября 2008

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

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

...