2016-08-14 8 views
2

"Microsoft.CodeAnalysis.CSharp.Scripting"を1.3.2に更新してから問題があります。Roslyn:VSIXパッケージのメソッドが見つかりません

再現する手順:

  1. をVSアドインEditorMarginクラスを作成します。
  2. .NETを4.6に変更する
  3. Microsoft.CodeAnalysis.CSharp.ScriptingおよびMicrosoft.CodeAnalysis.CSharpをインストールします。 CTORのどこかに次のコードを入れて
  4. :実行した後

    var t = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) 
    

をアドインをそれが

見つからないメソッドの例外をスローします

それは見つけることができませんCSharpCompilationOptionsのコンストラクタです。私は、 "Microsoft.CodeAnalysis.CSharp.Scripting"(上記の場合には必要ない)をインストールしないと、すべて動作することに気付きました。 Microsoft.CodeAnalysis.CSharp.Scriptingの依存関係の1つは、いくつかのパッケージをインストールすると思います。

私は "Fuslogvw"を実行してバインディングエラーがあるかどうかを確認しようとしましたが、何も役立つものが見つかりませんでした。

アイデア?

更新 - 私は、Visual Studio 2015更新3

を使用アップデート2 私は1.2.0から1.1.37に "System.Collections.Immutable" を格下げし、それが再び動作します。 アップデート3 私が報告したバグが見つかりました:問題は、私はロザリンスクリプトAPIはそのバージョンを使用しているため、1.2.0を使用する必要がある https://github.com/dotnet/roslyn/issues/12247

を。

+0

使用しているVisual Studio 2015のバージョンは何ですか? – JoshVarty

+0

更新です。3.サンプルを用意して例外を表示することができます。それは役に立つだろうか? – user3733340

+0

バインドエラーではないため、すべてのバインドをログに記録する必要があります。また、devenv.exe.configを調べる必要があります。これは、IDEがこれらのアセンブリを使用してからどのバージョンがロードされるかを決定するものです。ちょっと変わったときに、ちょうどすべてのアップデートがあなたのアドインを破るでしょう。あなたはRoslynがちょっと安定するまで待つことをお勧めします。1年または2年: –

答えて

0

パッケージバージョン1.3.2をターゲットにしている場合は、Visual Studio 2015 Update 3をターゲットにしていることを意味しますが、インストールされていないと思われます。古いバージョン(つまり、Update 2をターゲットにしている場合は1.2、Update 1をターゲットにする場合は1.1)にダウングレードするか、VSを新しいバージョンにアップグレードしてください。

+0

私はVS 2015 Update 3を使用します。 – user3733340

1

私の現在の回避策は、「System.Collections.Immutable 1.1.37」で動作するバージョンにMicrosoft.CodeAnalysis.Csharp.Scriptingをダウングレードすることです

0

私は、Visual Studio 2017をインストールし、この問題を解決することができましたVS 2017にはSystem.Collection.Immutable 1.2.1.0が必要です。これは他のRoslynバージョンと競合しません

関連する問題