La tarea" EnsureBindingRedirects " falló inesperadamente


Cuando creo una nueva aplicación de formularios web ASP.NET 4.5 desde vs2012 y actualizo todos los paquetes nuget, recibo este error al compilar:

Error 1 La tarea "EnsureBindingRedirects" falló inesperadamente. Sistema.NullReferenceException: Referencia de objeto no establecida en una instancia de un objeto. en Roxel.Tareas de construcción.Asegure los ingredientes de encuadernación.MergeBindingRedirectsFromElements(IEnumerable`1 dependentAssemblies) en Roxel.Tareas de construcción.Asegure los ingredientes de encuadernación.Ejecutar() en Microsoft.Construir.BackEnd.TaskExecutionHost.Microsoft.Construir.BackEnd.Es un servicio de urgencias.Ejecutar() en Microsoft.Construir.BackEnd.TaskBuilder.d _ _ 20.MoveNext()

Author: Kos, 2013-05-30

10 answers

Es un error en Microsoft.Bcl.Build y para resolverlo hay que poner culture info en la parte assemblyIdentity-de web.config o app.config.

Por ejemplo, si usted tiene:

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

Cámbialo 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>
 61
Author: Henrik Fransas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-25 10:26:19

Tuve este error, pero un poco diferente, me tomó 45 minutos para averiguarlo, así que pensé que sería mejor sacar esto.

Estaba experimentando el problema "EnsureBindingRedirects" task failed unexpectedly pero el mío vino de una excepción XmlException:

(...) \ packages \ Microsoft.Bcl.Construir.1.0.21\build \ Microsoft.Bcl.Construir.objetivos (97,5): error MSB4018: Sistema.XML.XmlException: '= ' es un token inesperado. El token esperado es';'. Línea 39, posición 175.

Resulta que la causa fue que recientemente había añadido un entrada a mi web.config appSettings donde el value era una URL que contenía un ampersand (&).

Los ampersands deben ser escapados en XML, incluso en los valores de atributo.

Cambié todo el & en el valor de la URL a &amp; y se construyó sin problemas.

 10
Author: JHo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-25 10:27:56

Actualiza Microsoft.Bcl.Build para arreglar esto.

Ejecute esto en la consola del Gestor de paquetes:

Update-Package Microsoft.Bcl.Build
 7
Author: Akira Yamamoto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-25 10:29:18

En mi caso, el problema se ha revelado después de fusionar una rama que rompió mi archivo web.config. Añadió secuencia de caracteres de comentario <!-- sin cerrar parte -->.

Hacer que el marcado de archivo sea válido solucionó el problema.

 6
Author: Volodymyr Bilyachat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-25 10:29:50

Una nueva versión de Microsoft.Bcl.Build (1.0.6) ha sido empujado hasta NuGet.org para solucionar este problema. La solución alternativa para agregar la cultura a la assemblyIdentity ya no es necesaria, pero no hará daño si la deja.

 1
Author: Ron Cain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-03 13:50:25

Ha agregado una referencia de un archivo que en realidad no existe en su carpeta de solución.

 0
Author: user761276,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-21 07:50:45

Esto me sucedió cuando tenía una carpeta BIN y OBJ marcada como de solo lectura. Retire la opción de solo lectura en*.DLL.config y *.app.config o eliminar esas carpetas.

 0
Author: Eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-27 15:31:45

Mi problema era que la etiqueta no estaba en la primera línea del archivo. Arreglé eso y todo funcionó bien.

 0
Author: Vaggelis Stefanakis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-28 13:02:14

Mi problema se debió a un valor de AppSettings en web.configuración que contenía una url con un & carácter.

 0
Author: Shane Courtrille,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-08 22:45:31

Para mí sucedió porque la aplicación.Config no estaba en la carpeta y había otra aplicación.configs para diferentes env. Así que lo copié.

 0
Author: C.P. Soni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-23 17:42:03