0

Мы имеем вопрос о сборе обязательного перенаправления во время компиляции:Связывание перенаправления во время компиляции для сильного имени сборки

  • Команда V (ветераны) разрабатывает P1 Продукта
  • Р1 непрерывно разработанный команда V в двух ветвях (ветви 1.6.x и 1.7.x), поэтому версия из продукта P1 увеличивается с течением времени в обоих ветвях
  • Команда NG (New Generation) построила продукт P2 на основе продукта P1 (с использованием определенных сборок от P1 1,7)
  • Продукт P2 содержит сборку A 2 (сильно названный), который помогает реализовать любой продукт (P2, P3 ...), основанный на P1
  • Команда NG создала пакет Nuget для сборки A2 (который ссылается на некоторые сборки из ветви P1 1.7)
  • Теперь , Команда NG запустила продукт P3 и должна использовать сборку A2 от P2 и сборку A1 от P1
  • Сборка A1 из P1 также доступна в виде пакета Nuget, но в версии 1.6 (поскольку 1.7 еще не утвержден для продукта P3)
  • Итак, у команды NG теперь есть продукт P3 с двумя ссылками: A2 и A1
  • Проблема в том, что A2 относится к A1 в версии 1.7, но у нас только A1 в версии 1.6
  • команды NG не разрешается использовать A1 в версии 1.7

Вот почему мы ищем привязки перенаправления во время компиляции для сильно именованных сборок. Насколько я знаю (по исследованиям), свойство «Специфическая версия» не имеет никакого эффекта при установке этого для сильно названной сборки.

Возможно ли такое перенаправление или какие-либо другие предложения?

Большое спасибо заранее С уважением, Майкл

ответ

0

bindingRedirect элемент app.config/web.config файлов применяется во время выполнения программы (но не во время компиляции).

В момент компиляции компилятор не настаивает на ссылках, имеющих номера версий, если только ссылка не имеет элемент SpecificVersion, установленный в файле проекта в True.

Сильное именование против ненасильственного наименования не должно быть фактором с этим.

См. Также How exactly does the "Specific Version" property of an assembly reference work in Visual Studio?