Roslyn:VSIX包缺少方法异常

时间:2016-08-14 17:51:30

标签: c# roslyn vsix

自从我将“Microsoft.CodeAnalysis.CSharp.Scripting”更新为1.3.2后,我遇到了问题。

重现的步骤:

  1. 使用EditorMargin类创建VS加载项。
  2. 将.NET更改为4.6
  3. 安装Microsoft.CodeAnalysis.CSharp.Scripting和Microsoft.CodeAnalysis.CSharp。
  4. 将以下代码放在ctor中:

    var t = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)
    
  5. 运行加载项后会抛出

      

    缺少方法异常

    找不到CSharpCompilationOptions的构造函数。我注意到当我没有安装“Microsoft.CodeAnalysis.CSharp.Scripting”时(在上面的例子中没有必要),一切正常。我想Microsoft.CodeAnalysis.CSharp.Scripting的一个依赖项会安装一些软件包。

    我试图运行“Fuslogvw”以查看是否存在任何绑定错误但我找不到任何有用的内容。

    有什么想法吗?

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

    更新2 我将“System.Collections.Immutable”从1.2.0降级到1.1.37并再次运行。 更新3 我发现了报告的错误: https://github.com/dotnet/roslyn/issues/12247

    问题是我需要使用1.2.0,因为Roslyn脚本API使用该版本。

3 个答案:

答案 0 :(得分:1)

目前我的解决方法是将Microsoft.CodeAnalysis.Csharp.Scripting降级为适用于“System.Collections.Immutable 1.1.37”的版本

答案 1 :(得分:0)

如果您的目标是打包版本1.3.2,那意味着您的目标是Visual Studio 2015 Update 3,但我猜你没有安装它。要么降级到旧版本(例如,如果您定位更新2则为1.2,如果定位更新1则为1.1),或者将您的VS升级到更新版本。

答案 2 :(得分:0)

我能够解决安装Visual Studio 2017的问题.VS 2017需要System.Collection.Immutable 1.2.1.0,这与其他Roslyn版本不冲突