无法在 VSIX 项目中加载文件或程序集“Microsoft.CodeAnalysis.Workspaces,版本=2.3.0.0
Could not load file or assembly 'Microsoft.CodeAnalysis.Workspaces, Version=2.3.0.0 in VSIX project
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 1.3.2 是可与 Visual Studio 2015 Update 3
配合使用的最新版本
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
时,不会发生错误并且命令成功执行如果此问题有可用的修复程序,请告诉我。
参见