Подтвердить что ты не робот

Не удалось выполнить задачу "EnsureBindingRedirects"

Когда я создаю новый ASP.NET 4.5 приложения веб - формы из vs2012 и обновить все nuget пакеты, я получаю эту ошибку на сборке:

Ошибка 1 Задача "EnsureBindingRedirects" не удалось неожиданно. System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. в Roxel.BuildTasks.EnsureBindingRedirects.MergeBindingRedirectsFromElements(IEnumerable'1 independentAssemblies) в Roxel.BuildTasks.EnsureBindingRedirects.Execute() в Microsoft.Build.BackEnd.TaskExecHit.Back.Eution.BuU.TaskBuilder.d__20.MoveNext()

4b9b3361

Ответ 1

Это ошибка в Microsoft.Bcl.Build и решить его нужно поместить culture информации в assemblyIdentity -part в web.config или app.config.

Например, если у вас есть:

<dependentAssembly>
   <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
   <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>

измените это на:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>

Ответ 2

У меня была эта ошибка, но немного по-другому, мне потребовалось 45 минут, чтобы понять ее, поэтому я подумал, что мне лучше это исправить.

"EnsureBindingRedirects" task failed unexpectedly проблема "EnsureBindingRedirects" task failed unexpectedly проблемой, но моя возникла из-за XmlException:

(...)\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets(97,5): ошибка MSB4018: System.Xml.XmlException: '=' - неожиданный токен. Ожидаемый токен - ";". Строка 39, позиция 175.

Оказывается, причина была в том, что я недавно добавил запись в мои web.config appSettings где value был URL, содержащий амперсанд (&).

Амперсанды необходимо экранировать в XML, даже в значениях атрибутов.

Я изменил все значения & в URL-адресе на &amp; и он построен без проблем.

Ответ 3

Обновите Microsoft.Bcl.Build чтобы исправить это.

Запустите это на консоли диспетчера пакетов:

Update-Package Microsoft.Bcl.Build

Ответ 4

В моем случае проблема раскрылась после того, как я слил ветку, которая сломала мой файл web.config. Добавлена последовательность символов комментария <!-- без закрывающей части -->.

Исправление разметки файла устранило проблему.

Ответ 5

Для исправления этой проблемы новая версия Microsoft.Bcl.Build(1.0.6) была перенаправлена ​​на NuGet.org. Обходной путь для добавления культуры в assemblyIdentity больше не нужен, но не повредит, если вы оставите его.

Ответ 6

Вы добавили ссылку на файл, который на самом деле не существует в папке вашего решения.

Ответ 7

Это случилось со мной, когда у меня была папка BIN и OBJ, помеченная только для чтения. Удалите только для чтения файлы *.dll.config и *.app.config или удалите эти папки.

Ответ 8

Моя проблема заключалась в том, что тег не был в первой строке файла. Исправлено это, и все работало нормально.

Ответ 9

Моя проблема была из-за значения appSettings в web.config, который содержал URL с символом &.

Ответ 10

Для меня это произошло потому, что App.Config не было в папке, и были другие app.configs, предназначенные для различных env. Поэтому я скопировал это.

Ответ 11

У меня была похожая проблема, но моя была вызвана наличием директив xml transform в web.config

Ошибка Задача "EnsureBindingRedirects" неожиданно завершилась неудачей. System.Xml.XmlException: "xdt" - это необъявленный префикс. Строка 27, позиция 59. в System.Xml.XmlTextReaderImpl.Throw (исключение e) в System.Xml.XmlTextReaderImpl.Throw(String res, строковый аргумент, Int32 lineNo, Int32 linePos)

Я скопировал и вставил appsetting из одного из преобразований. Решение состояло в том, чтобы удалить атрибуты преобразования

(если это не та проблема, которая возникла у ОП, но она может помочь кому-то еще)

Ответ 12

I resolved this by following these steps:

1.) Удалите Microsoft.Bcl.Build.1.0.13 из решения\пакетов.

2.) После того как он закроет решение, затем откройте решение.

3.) Перейдите в инструменты/менеджер пакетов Nuget.

4.) Нажмите Восстановить пакеты в правом верхнем углу окна, после чего пересоберите решение.

Ответ 13

Для решения проблемы можно выполнить следующие шаги:

  1. Обновите пакет Microsoft.Bcl.Build до последней версии.
  2. Убедитесь, что у вас есть файл App.config/Web.config в вашем проекте, и он также физически существует в соответствующей папке на вашем компьютере.
  3. Убедитесь, что в файле App.config/Web.config нет специальных символов. Если они существуют, их нужно заменить. Посмотрите на эту статью → https://support.crossref.org/hc/en-us/articles/215652783-Special-characters-in-your-XML
  4. В файле App.config/Web.config в каждой <dependentAssembly> добавьте следующую пару ключ-значение: culture="neutral" в <assemblyIdentity.../>.
  5. Еще один шаг, который описывает, как исправить ваш уникальный случай и не был описан выше :)

Надеюсь, это поможет.