【问题标题】:Could not load file or assembly 'Microsoft.CodeAnalysis.Workspaces, Version=2.3.0.0 in VSIX project无法在 VSIX 项目中加载文件或程序集 'Microsoft.CodeAnalysis.Workspaces,版本 = 2.3.0.0
【发布时间】:2017-10-03 17:57:10
【问题描述】:

使用的 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 时,不会发生错误并且命令执行成功

请让我知道是否有任何解决此问题的方法。

【问题讨论】:

    标签: roslyn roslyn-code-analysis


    【解决方案1】:

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

    【讨论】:

    • 感谢 Jonathan Marlof,根据您的帖子,Roslyn 不向后兼容,这意味着如果我升级到最新版本,我的扩展将无法在 VS 2015 Update 3 中运行。你知道任何解决方案使它与 VS 2015 Update 3 和 VS 2017 Update 3 兼容吗?
    • 如果您参考 1.3.2 版,您的扩展程序将适用于两者。
    • 感谢@Jonathon,我已经降级到 1.0.0,现在它可以在 2015 Update 3 和 2017 Update 3 中运行,希望它可以在所有高于 Visual Studio 2015.0 (RTM) 的版本中运行跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2017-10-15
    • 2020-05-09
    • 2018-10-04
    • 2020-11-11
    • 2013-11-14
    相关资源
    最近更新 更多