2016-05-18 15 views
2

ich mein Projekt von .Net 4.5 4.6.1 Upgrade auf .NET und bin jetzt die folgenden Fehler bekommen, wenn zu kompilieren versuchen:Custom Tool Fehler: nach Projekt Umschalten von .net 4.5 auf .NET 4.6.1

The "GenerateBindingRedirects" task failed unexpectedly. System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.Build.Tasks.GenerateBindingRedirects.UpdateExistingBindingRedirects(XElement runtimeNode, IDictionary`2 redirects) at Microsoft.Build.Tasks.GenerateBindingRedirects.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()

Custom tool error: Failed to generate file: An error occurred creating the configuration section handler for system.serviceModel/bindings: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) (C:\ALM[BranchName]\Common[ProjectName]\app.config line 48) Portal.Interface C:\ALM[BranchName]\Common[ProjectName]\Service References[ServiceName]\Reference.svcmap

Basierend auf anderen Suchen, habe ich versucht: Entfernen Sie den ServiceModel Abschnitt in der App-Konfiguration und Aktualisieren von Service-Referenzen. Dies funktioniert jedoch nicht, weil ich keinen Zugriff auf die Dienste von meinem Computer habe.

Ich habe auch bestätigt, dass die Service-Referenzen mit "Reuse Typen in referenzierten Baugruppen" konfiguriert ist deaktiviert ist.

Eine Suche führte mich zum Entfernen eines der Einträge in Reference.svcmap, war aber nicht spezifisch, welcher Eintrag entfernt werden sollte.

Ich bin definitiv nicht mein Element mit Service-Referenzen, so dass jede Hilfe geschätzt werden würde.

+0

funktioniert Nun, "unerwartet" ist eine ziemlich genaue Beschreibung. Ich vermute, dass Sie uns viel mehr über Ihr Projekt erzählen müssen, bevor jemand eine Theorie darüber formulieren kann, wie sich eine app.config-Datei auf MSBuild auswirken könnte. –

+1

Wenn Sie sich abenteuerlustig fühlen, können Sie in den [Quellcode] (https://github.com/Microsoft/msbuild/blob/master/src/XMakeTasks/AssemblyDependency/GenerateBindingRedirects.cs#L187) schauen, um zu sehen, was * könnte * Sei das Problem mit deiner Projektdatei. Es gibt ein paar Dinge, die das NRE verursachen könnten, aber eine wahrscheinliche Möglichkeit ist, dass einige erwartete XML-Attribute in Ihrer Projektdatei nicht vorhanden sind, wo sie sein sollten. –

Antwort

1

Die Codezeile:

private void UpdateExistingBindingRedirects(XElement runtimeNode, IDictionary<AssemblyName, string> redirects) 
{  
    ... 
    var publicKeyToken = assemblyIdentity.Attribute("publicKeyToken"); 
    var publicKeyTokenValue = publicKeyToken.Value; 
    ... 

sieht aus wie Sie nicht Baugruppen umleiten können, die nicht mit starkem Namen sind. Das bedeutet, ich sollte nur in der Lage sein, die Einträge zu entfernen. Das lässt mich fragen, wie das vorher in .Net 4.5

+1

Ich habe diese Umleitungen gelöscht, da sie anfangs nutzlos waren. Ich sprach mit dem ursprünglichen Entwickler, der sie hineinsteckte und er konnte sich nicht erinnern, warum er es getan hatte. – DontThinkJustGo