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

Ошибка при создании нового приложения ASP.NET 4.5 веб-форм из vs2012 и обновления всех пакетов nuget. Я получаю эту ошибку при сборке.

Error 1 The "EnsureBindingRedirects" task failed unexpectedly.
System.NullReferenceException: Object reference not set to an instance of an object.
 at Roxel.BuildTasks.EnsureBindingRedirects.MergeBindingRedirectsFromElements(IEnumerable`1 dependentAssemblies)
 at Roxel.BuildTasks.EnsureBindingRedirects.Execute()
 at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
 at Microsoft.Build.BackEnd.TaskBuilder.<executeinstantiatedtask>d__20.MoveNext()
</executeinstantiatedtask>
8 ответов

Это ошибка в Microsoft.Bcl.Build, и для ее решения вам нужно добавить ************ в сборку. Часть элементов 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">
 </bindingredirect></assemblyidentity></dependentassembly>

Должно быть:

<dependentassembly>
 <assemblyidentity name="System.Web.Helpers" publickeytoken="31bf3856ad364e35" culture="neutral">
 </assemblyidentity></dependentassembly>

/Henrik


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

Возникла проблема с "EnsureBindingRedirects" task failed unexpectedly, но моя произошла из исключения XmlException:

(...)\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets(97,5): error MSB4018: System.Xml.XmlException: '=' is an unexpected token. The expected token is ';'. Line 39, position 175.

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


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

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

Update-Package Microsoft.Bcl.Build


В моем случае проблема выявилась после того, как я объединил ветку, которая сломала мой файл web.config. Он добавил последовательность символов комментария . При внесении изменений в файл исправлена ​​проблема.


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


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


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


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

licensed under cc by-sa 3.0 with attribution.