无法在VSIX项目中加载文件或程序集Microsoft.CodeAnalysis.Workspaces,Version = 2.3.0.0

时间:2017-10-03 17:57:11

标签: roslyn roslyn-code-analysis

使用的Microsoft.CodeAnalysis版本:2.3.2

重现步骤:

使用.Net framework 4.6在Visual Studio 2015 Update 3中创建VSIX(c#)项目 将最新的Microsoft.CodeAnalysis库添加到VSIX项目 将菜单命令添加到VSIX项目 在菜单命令操作

中添加以下代码
string projectFilePath = @"C:\ConsoleApp1\ConsoleApp1.csproj";
string outputFilePath = @"C:\ConsoleApp1\ConsoleApp1.dll";
Project project = null;

    using (var workspace = MSBuildWorkspace.Create())
    {
        project = workspace.OpenProjectAsync(projectFilePath).Result;
        var compilation = project.GetCompilationAsync().Result;
        var compilationStatus = compilation.Emit(outputFilePath);
        bool isSuccess = compilationStatus.Success; 
    }

预期行为: Roslyn应该能够编译项目并将输出发送到目标位置。

实际行为: 调用命令时发生以下异常。

无法加载文件或程序集' Microsoft.CodeAnalysis.Workspaces,Version = 2.3.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。系统找不到指定的文件。

注意: 当Microsoft.CodeAnalysis的版本降级为1.3.2时,错误不会发生并且命令成功执行

如果有任何问题可以解决此问题,请与我们联系。

1 个答案:

答案 0 :(得分:3)

What's the latest version of Roslyn my analyzer can target if I support VS2015?。 Roslyn 1.3.2是可与Visual Studio 2015 Update 3一起使用的最新版本