2017-05-17 6 views
0

Ich versuche, eine Lösung zu aktualisieren, die Roslyn zu 4.7 verwendet. Wenn die nuget Pakete aktualisieren ich die folgende Fehlermeldung erhalten:Aktualisieren der Lösung für .NET Framework 4.7: Problem mit Roslyn

One or more unresolved package dependency constraints detected in the existing packages.config file. All dependency constraints must be resolved to add or update packages. If these packages are being updated this message may be ignored, if not the following error(s) may be blocking the current package operation: 'System.Security.Cryptography.Algorithms 4.3.0 constraint: System.IO (>= 4.3.0)'

Und dann, wenn Roslyn zu verwenden versuchen, erhalte ich eine Ausnahme den folgenden Code ausführen:

var compilation = CSharpCompilation.Create("MyCompilation", new[] {syntaxTree}, references); 
var diag = compilation.GetDiagnostics(); 

Die Ausnahme ist:

Managed Debugging Assistant 'BindingFailure' occurred HResult=0x00000000 Message=Managed Debugging Assistant 'BindingFailure' : 'The assembly with display name 'System.Security.Cryptography.Algorithms' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileLoadException: Could not load file or assembly 'System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'

Irgendeine Idee, wie zu beheben?

Antwort

0

Es stellte sich heraus, dass das Problem mit der abhängigen Assembly-Umleitung war. Es sieht so aus, als ob VS2017 viele dieser Dateien in meinen app.config-Dateien hinzufügt.

ändern:

<dependentAssembly> 
    <assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" /> 
    </dependentAssembly> 

mit diesem:

<dependentAssembly> 
    <assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.1.0.0" /> 
    </dependentAssembly> 

in meinem Hauptprojekt app.config Datei scheint es getan zu haben.

0

Sie können uns den Inhalt der Datei packages.config zeigen. Von was es aussieht, müssen Sie System.IO auf Version 4.3.0 oder höher aktualisieren, weil System.Security.Cryptography.Algorithms es erfordert.

Verwandte Themen