2016-08-14 89 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。
  4. 在構造函數的地方將下面的代碼:

    var t = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) 
    

運行後加載它會拋出一個

缺少方法例外

它無法找到一個CSharpCompilationOptions的構造函數。我注意到,當我沒有安裝「Microsoft.CodeAnalysis.CSharp.Scripting」(在上面的例子中不需要)時,一切正常。我想Microsoft.CodeAnalysis.CSharp.Scripting的依賴關係之一會安裝一些軟件包。

我試圖運行「Fuslogvw」,看看是否有任何綁定錯誤,但我找不到任何有用的東西。

任何想法?

更新 - 我使用Visual Studio 2015年更新3

更新2 我降級 「System.Collections.Immutable」 從1.2.0至37年1月1日,它再次工作。 更新3 我發現報告的bug: https://github.com/dotnet/roslyn/issues/12247

的問題是我需要使用1.2.0,因爲羅斯林腳本API使用該版本。

+0

您使用的是哪個版本的Visual Studio 2015? – JoshVarty

+0

它是更新3.我可以準備一個示例來顯示異常。它會有用嗎? – user3733340

+0

不是綁定錯誤,因此您必須記錄所有綁定。並且您必須查看devenv.exe.config,它是決定要使用哪些版本進行加載的因素,因爲IDE也使用這些程序集。有點棘手,當幾乎每一個更新會打破你的插件順便說一句,你可能要等到Roslyn穩定了一下。一年或兩年:) –

回答

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

對我來說,目前的解決方法是降級Microsoft.CodeAnalysis.Csharp.Scripting到與「System.Collections.Immutable 37年1月1日」

0

我能解決這個問題,安裝Visual Studio 2017年的作品版本。VS 2017需要System.Collection.Immutable 1.2.1.0,與其他Roslyn版本不衝突