“EnsureBindingRedirects”任务意外失败

错误,当我从vs2012创build新的ASP.NET 4.5网页表单应用程序,并更新所有nuget包..我在构build上收到此错误。

 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() 

这是Microsoft.Bcl.Build中的一个错误,为了解决这个问题,您必须将cultureinfo放入web.config或app.config的assemblyIdentity部分。 例如:

  <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> 

/亨里克

更新Microsoft.Bcl.Build来解决这个问题。

在程序包pipe理器控制台上运行:

 Update-Package Microsoft.Bcl.Build 

我有这个错误,但略有不同,花了我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的appSettingsvalue是一个包含&符号的URL。 &符号需要在XML中转义,即使在属性值中也是如此。 我将url值中的所有&更改为&amp; 它没有问题build成。

在我的情况下,问题已经发现后,我合并了一个分支,打破了我的web.config文件。 它添加了注释字符序列<!--没有closures部分--> 。 使文件标记有效解决了问题。

一个新版本的Microsoft.Bcl.Build(1.0.6)已被推到NuGet.org解决这个问题。 将文化添加到assemblyIdentity中的解决方法不再是必要的,但是如果您将其放入,则不会受到伤害。

您已经添加了一个实际上不存在于您的解决scheme文件夹中的文件的引用。

这发生在我有一个BIN和OBJ文件夹标记为只读。 删除* .dll.config和* .app.config中的只读或删除这些文件夹。