it-swarm.com.de

Die Task "EnsureBindingRedirects" ist unerwartet fehlgeschlagen

Wenn ich aus ASP.NET 4.5 eine neue vs2012-Webformularanwendung erstelle und alle nuget-Pakete aktualisiere, erhalte ich diese Fehlermeldung beim Build:

Fehler 1 Die Task "EnsureBindingRedirects" ist unerwartet fehlgeschlagen . System.NullReferenceException: Der Objektverweis wurde nicht auf eine Instanz eines Objekts festgelegt .. ... at Roxel.BuildTasks.EnsureBindingRedirects.MergeBindingRedirectsFromElements (IEnumerable`1 abhängigeAssemblies) bei Roxel.BuildTasks.EnsureBindingRedirects.Execute () at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () bei Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext ()

38
Ivan Lewis

Es ist ein Fehler in Microsoft.Bcl.Build und um ihn zu lösen, müssen Sie culture info in den assemblyIdentity- Teil von web.config oder app.config einfügen. 

Zum Beispiel, wenn Sie haben:

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

Ändern Sie es in:

<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>
63
Henrik Fransas

Ich hatte diesen Fehler, aber ein bisschen anders. Ich habe 45 Minuten gebraucht, um das herauszufinden.

Ich hatte das "EnsureBindingRedirects" task failed unexpectedly-Problem, aber meines kam von einer XmlException:

(...)\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets (97,5): Fehler MSB4018: System.Xml.XmlException: '=' ist ein unerwartetes Token. Das erwartete Token ist ";". Linie 39, Position 175.

Es stellte sich als Ursache heraus, dass ich kürzlich der appSettings meiner web.config einen Eintrag hinzugefügt hatte, wobei die value eine URL war, die ein Et-Zeichen (&) enthielt. 

Et-Zeichen müssen in XML mit Escapezeichen versehen werden, auch in Attributwerten. 

Ich änderte alle & im URL-Wert in &amp; und baute sie ohne Probleme auf.

11
JHo

In meinem Fall haben sich Probleme ergeben, nachdem ich einen Zweig zusammengeführt habe, der meine web.config-Datei gebrochen hat. Er fügte die Kommentarzeichenfolge <!-- hinzu, ohne den Teil --> zu schließen. 

Das Problem wurde dadurch behoben, dass die Dateimarkierung gültig wurde.

7

Aktualisieren Sie Microsoft.Bcl.Build, um dies zu beheben.

Führen Sie dies in der Package Manager-Konsole aus:

Update-Package Microsoft.Bcl.Build
7
Akira Yamamoto

Eine neue Version von Microsoft.Bcl.Build (1.0.6) wurde auf NuGet.org verschoben, um dieses Problem zu beheben. Die Problemumgehung zum Hinzufügen der Kultur zur AssemblyIdentity ist nicht mehr erforderlich, schadet jedoch nicht, wenn Sie sie in lassen.

1
Ron Cain

Die folgenden Schritte können ausgeführt werden, um das Problem zu beheben:

  1. Aktualisieren Sie das "Microsoft.Bcl.Build " - Paket auf die neueste Version.
  2. Stellen Sie sicher, dass Sie eine App.config/Web.config Datei in Ihrem Projekt haben und diese auch physisch in einem relevanten Ordner auf Ihrem Computer vorhanden ist.
  3. Stellen Sie sicher, dass die Datei App.config/Web.config keine Sonderzeichen enthält. Wenn sie existieren, müssen Sie sie ersetzen. Schauen Sie sich diesen Artikel an -> https://support.crossref.org/hc/en-us/articles/215652783-Special-characters-in-your-XML
  4. In App.config/Web.config Datei unter jedem <dependentAssembly> Fügen Sie das folgende Schlüssel-Wert-Paar hinzu: culture="neutral" bis <assemblyIdentity ... />.
  5. Ein weiterer Schritt, der beschreibt, wie Sie Ihren Einzelfall beheben können und der oben nicht beschrieben wurde :)

Ich hoffe das hilft.

0
Denys

Mein Problem war auf einen appSettings-Wert in web.config zurückzuführen, der eine URL mit dem Zeichen & enthielt.

0

Dies ist mir passiert, als ich einen BIN- und OBJ-Ordner als schreibgeschützt markiert hatte. Entfernen Sie die schreibgeschützten Dateien * .dll.config und * .app.config oder löschen Sie diese Ordner. 

0
Eric

Für mich ist es passiert, weil App.Config nicht im Ordner war und es andere App.configs gab, die für verschiedene Umgebungen gedacht waren. Also habe ich es kopiert.

0
C.P. Soni

Sie haben einen Verweis auf eine Datei hinzugefügt, die tatsächlich nicht in Ihrem Lösungsordner vorhanden ist.

0
user761276

Ich hatte ein ähnliches Problem, aber mein Problem wurde durch XML-Transformationsanweisungen in web.config verursacht

Fehler Die Task "EnsureBindingRedirects" ist unerwartet fehlgeschlagen. System.Xml.XmlException: 'xdt' ist ein nicht deklariertes Präfix. Zeile 27, Position 59. bei System.Xml.XmlTextReaderImpl.Throw (Ausnahme e) bei System.Xml.XmlTextReaderImpl.Throw (String res, String arg, Int32 lineNo, Int32 linePos)

Ich hatte ein Appsetting aus einer der Transformationen kopiert und eingefügt. Die Lösung bestand darin, die Transformationsattribute zu entfernen

(Zugegeben, dies ist nicht das genaue Problem, das das OP hatte, aber es könnte jemand anderem helfen.)

0
SpecialOps
I resolved this by following these steps:

1.) Löschen Sie Microsoft.Bcl.Build.1.0.13 aus solution\packages.

2.) Nachdem die Lösung geschlossen wurde, öffnen Sie sie.

3.) Navigieren Sie zu tools/Nuget package manager.

4.) Klicken Sie in der rechten oberen Ecke des Fensters auf Restore Packages (Pakete wiederherstellen), nachdem Sie die Lösung neu erstellt haben.

Mein Problem war, dass sich das Tag nicht in der ersten Zeile der Datei befand. Das Problem wurde behoben und alles hat funktioniert.

0