Как я могу указать, что несколько версий зависимой сборки в порядке? - PullRequest
3 голосов
/ 10 сентября 2008

Сборки A и B развернуты в частном порядке и имеют строгие имена. Сборка A содержит ссылки на сборку B. Существует две версии сборки B: B1 и B2. Я хочу иметь возможность указать для сборки A, что она может связываться с B1 или B2 - в идеале, путем включения этой информации в саму сборку. Какие у меня варианты?

Я немного знаком с политикой управления версиями и тем, как она применяется к GAC, но я не хочу зависеть от того, находятся ли эти сборки в GAC.

Ответы [ 2 ]

2 голосов
/ 11 сентября 2008

Существует несколько мест, где вы можете указать .Net Framework, что конкретная версия строго типизированной библиотеки должна быть предпочтительнее другой. Это:

  • Файл политики издателя
  • файл machine.config
  • файл app.config

Все эти методы используют элемент Element"> "" , который может инструктировать .Net Framework связывать версию или диапазон версий сборки с конкретной версией.

Вот краткий пример тега, используемого для привязки всех версий сборки вплоть до версии 2.0 до версии 2.5:

<assemblyBinding>
    <dependantAssembly>
        <assemblyIdentity name="foo" publicKeyToken="00000000000" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0 - 2.0.0.0" newVersion="2.5.0.0" />
    </dependantAssembly>
</assemblyBinding>

Существует множество подробностей, поэтому лучше, если вы прочитаете о Перенаправление версий сборки на MSDN , чтобы решить, какой метод лучше всего подходит для вашего случая.

1 голос
/ 10 сентября 2008

Вы можете установить политику версий в вашем файле app.config. В качестве альтернативы вы можете вручную загрузить эти сборки с помощью вызова Assembly.LoadFrom(), когда это сделано, версия сборки не рассматривается.

...