2016-08-14 5 views
2

Ich habe Probleme, seit ich "Microsoft.CodeAnalysis.CSharp.Scripting" auf 1.3.2 aktualisiert habe.Roslyn: Fehlende Methodenausnahme für VSIX-Paket

Schritte zum Reproduzieren:

  1. erstellen VS-Add-in mit EditorMargin Klasse.
  2. Ändern Sie .NET zu 4.6
  3. Installieren Sie Microsoft.CodeAnalysis.CSharp.Scripting und Microsoft.CodeAnalysis.CSharp.
  4. in Ctor Setzen Sie irgendwo den folgenden Code:

    var t = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) 
    

Nach dem Ausführen des Add-In eine

Fehlende Methode Ausnahme

Es kann werfen nicht finden ein Konstruktor von CSharpCompilationOptions. Ich habe festgestellt, dass alles funktioniert, wenn ich "Microsoft.CodeAnalysis.CSharp.Scripting" nicht installiere (was im obigen Fall nicht notwendig ist). Ich denke, eine der Abhängigkeiten von Microsoft.CodeAnalysis.CSharp.Scripting installiert einige Pakete.

Ich habe versucht, "Fuslogvw" zu starten, um zu sehen, ob es Bindungsfehler gibt, aber ich konnte nichts nützliches finden.

Irgendwelche Ideen?

aktualisieren - Ich verwende Visual Studio 2015 Update 3

Update 2 ich herabgestuft "System.Collections.Immutable" von 1.2.0 bis 1.1.37 und es funktioniert wieder. 3 aktualisieren Ich fand das berichtete Fehler: https://github.com/dotnet/roslyn/issues/12247

Das Problem ist, ich brauche 1.2.0 zu verwenden, da Roslyn Skript-API diese Version verwendet.

+0

Welche Version von Visual Studio 2015 verwenden Sie? – JoshVarty

+0

Es ist Update 3. Ich kann ein Beispiel vorbereiten, um die Ausnahme zu zeigen. Wäre es nützlich? – user3733340

+0

Kein Binding-Fehler, daher müssen Sie alle Bindungen protokollieren. Und Sie müssen in devenv.exe.config suchen, es ist derjenige, der entscheidet, welche Version geladen wird, da die IDE diese Baugruppen ebenfalls verwendet. Irgendwie knifflig, wenn fast jedes Update Ihr Add-In zwickt, Sie möchten vielleicht warten, bis Roslyn sich ein wenig stabilisiert.Ein Jahr oder zwei :) –

Antwort

0

Wenn Sie Paketversion 1.3.2 als Targeting verwenden, heißt das, dass Sie Visual Studio 2015 Update 3 als Ziel haben, aber ich nehme an, Sie haben diese nicht installiert. Führen Sie entweder einen Downgrade auf eine ältere Version durch (d. H. 1.2, wenn Sie auf Update 2 abzielen, 1.1, wenn Sie auf Update 1 abzielen), oder aktualisieren Sie Ihren VS auf eine neuere Version.

+0

Ich benutze VS 2015 Update 3. – user3733340

1

Die aktuelle Problemumgehung für mich ist Microsoft.CodeAnalysis.Csharp.Scripting auf die Version herabzustufen, die mit „System.Collections.Immutable 1.1.37“

0

funktioniert konnte ich dieses Problem bei der Installation von Visual Studio 2017 lösen VS 2017 erfordert System.Collection.Immutable 1.2.1.0, das nicht mit anderen Roslyn-Versionen in Konflikt steht