46 votes

La tâche "EnsureBindingRedirects" a échoué de manière inattendue

Lorsque je crée une nouvelle application de formulaire Web ASP.NET 4.5 à partir de vs2012 et que je mets à jour tous les packages nuget, je reçois cette erreur lors de la compilation :

Erreur 1 La tâche "EnsureBindingRedirects" a échoué de manière inattendue. System.NullReferenceException: Référence d'objet non définie à une instance d'un objet. 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.d__20.MoveNext()

65voto

Henrik Fransas Points 466

C'est un bug dans Microsoft.Bcl.Build et pour le résoudre, vous devez mettre culture info dans la partie assemblyIdentity de web.config ou app.config.

Par exemple, si vous avez :

changez-le en :

1 votes

Il n'y a aucun écrit nulle part dans le web.config

9 votes

System.Web.Helpers était juste un exemple, vérifiez pour dependentAssembly et ajoutez cultureinfo à tout ce qui se trouve à l'intérieur de cet élément

2 votes

Merci! Cela m'a aidé! mais que signifie culture="neutral"?

17voto

JHo Points 21

J'ai rencontré cette erreur mais légèrement différente, il m'a fallu 45 minutes pour la résoudre alors j'ai décidé de la partager.

J'avais le problème de "EnsureBindingRedirects" task failed unexpectedly mais le mien venait d'une XmlException :

(...)\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets(97,5): error MSB4018: System.Xml.XmlException: '=' est un jeton inattendu. Le jeton attendu est ';'. Ligne 39, position 175.

Il s'est avéré que la cause était que j'avais récemment ajouté une entrée aux appSettings de mon web.config où la valeur était une URL contenant un esperluette (&).

Les esperluettes doivent être échappées en XML, même dans les valeurs des attributs.

J'ai remplacé toutes les & dans la valeur URL par & et ça s'est construit sans problème.

1 votes

C'était aussi mon problème, une erreur si cryptique, mais tu m'as sauvé beaucoup de temps, merci!

0 votes

Bel endroit JHo - m'a épargné beaucoup de stress

12voto

Dans mon cas, le problème s'est révélé après avoir fusionné une branche qui a cassé mon fichier web.config. Il a ajouté la séquence de caractères de commentaire .

Rendre la balise du fichier valide a résolu le problème.

0 votes

Merci! C'était également la cause ici. Je ne l'aurais probablement pas découverte sans votre commentaire, car l'erreur se trouvait dans le fichier Web.config et non dans le fichier *.csproj auquel je pensais qu'il faisait référence. On apprend quelque chose de nouveau tous les jours ;)

1 votes

J'avais aussi un web.config corrompu. Une fois corrigé, le projet a compilé

10voto

Akira Yamamoto Points 982

Mettez à jour Microsoft.Bcl.Build pour corriger cela.

Exécutez ceci sur la console du Gestionnaire de packages :

Update-Package Microsoft.Bcl.Build

1voto

Ron Cain Points 71

Une nouvelle version de Microsoft.Bcl.Build (1.0.6) a été poussée sur NuGet.org pour résoudre ce problème. La solution de contournement consistant à ajouter la culture à l'assemblyIdentity n'est plus nécessaire mais ne fera pas de mal si vous la laissez.

5 votes

J'ai essayé il y a 2 jours, ça casse toujours. Je ne sais pas dans quelle dimension parallèle ce nouveau package se trouve! :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X