.net - La tarea "EnsureBindingRedirects" falló inesperadamente
visual-studio-2012 compiler-errors (10)
Actualiza Microsoft.Bcl.Build
para solucionarlo.
Ejecuta esto en la consola de Package Manager:
Update-Package Microsoft.Bcl.Build
Cuando creo una nueva ASP.NET 4.5
formularios web ASP.NET 4.5
desde vs2012
y actualizo todos los paquetes nuget
, recibo este error en la compilación:
Error 1 La tarea "EnsureBindingRedirects" falló inesperadamente. System.NullReferenceException: referencia de objeto no establecida en una instancia de un objeto. en Roxel.BuildTasks.EnsureBindingRedirects.MergeBindingRedirectsFromElements (IEnumerable`1 dependentAssemblies) en Roxel.BuildTasks.EnsureBindingRedirects.Execute () en Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () en Microsoft.Build.BackEnd .TaskBuilder.d__20.MoveNext ()
En mi caso, el problema se reveló después de fusionar una sucursal que rompió mi archivo web.config
. Agregó la secuencia de caracteres de comentario <!--
sin la parte de cierre -->
.
Hacer que el marcado de archivos sea válido solucionó el problema.
Es un error en Microsoft.Bcl.Build
y para resolverlo debes poner la información culture
en assemblyIdentity
-part de web.config
o app.config
.
Por ejemplo, si tienes:
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
cambiarlo a:
<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>
Esto me sucedió cuando tenía una carpeta BIN y OBJ marcada como de solo lectura. Elimine el archivo de solo lectura en * .dll.config y * .app.config o elimine esas carpetas.
Ha agregado una referencia de un archivo que en realidad no existe en la carpeta de la solución.
Mi problema era que la etiqueta no estaba en la primera línea del archivo. Se corrigió eso y todo funcionó bien.
Mi problema se debió a un valor de appSettings en web.config que contenía una url con un carácter &.
Para mí, sucedió porque App.Config no estaba en la carpeta y había otras app.configs destinadas a diferentes env. Así que lo copié.
Se ha enviado una nueva versión de Microsoft.Bcl.Build (1.0.6) a NuGet.org para solucionar este problema. La solución alternativa para agregar la cultura a assemblyIdentity ya no es necesaria, pero no le hará daño si la deja activada.
Tuve este error pero un poco diferente, me llevó 45 minutos descubrirlo, así que pensé que sería mejor que lo hiciera.
Estaba experimentando la "EnsureBindingRedirects" task failed unexpectedly
pero el mío proviene de una XmlException:
(...) / packages / Microsoft.Bcl.Build.1.0.21 / build / Microsoft.Bcl.Build.targets (97,5): error MSB4018: System.Xml.XmlException: ''='' es un token inesperado. El token esperado es '';''. Línea 39, posición 175.
Resulta que la causa fue que recientemente agregué una entrada a la appSettings
la appSettings
mi web.config, donde el value
era una URL que contenía un símbolo comercial (&).
Los símbolos deben escaparse en XML, incluso en valores de atributo.
Cambié todo el &
en el valor de URL a &
y se construyó sin problema.