使用的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时,错误不会发生并且命令成功执行
如果有任何问题可以解决此问题,请与我们联系。
答案 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一起使用的最新版本