2017-10-03 3 views
1

Microsoft.CodeAnalysis 버전이 사용 = 파일이나 어셈블리 'Microsoft.CodeAnalysis.Workspaces를로드 할 수 없습니다 닷넷 프레임 워크와 비주얼 스튜디오 2015 업데이트 3) 프로젝트 4.6 메뉴 명령 조치에 다음 코드를 추가 VSIX 프로젝트에 메뉴 명령을 추가 VSIX 프로젝트에 최신 Microsoft.CodeAnalysis 라이브러리를 추가는 버전 2.3.0.0 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, 버전 = 2.3.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.

참고 : 오류가 발생하지 않고 Microsoft.CodeAnalysis의 버전이 어떤 수정이 문제에 대한 사용할 수있는 경우 알려 주시기 바랍니다 1.3.2

로 다운 그레이드 할 때 명령이 성공적으로 실행합니다.

답변

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에서 작동하는 최신 버전입니다.

+0

감사합니다. Jonathan Marlof, 게시물별로 Roslyn은 이전 버전과 호환되지 않습니다. 즉, 업그레이드하면 VS 2015 Update 3에서 내 확장 프로그램이 작동하지 않습니다. 최신. VS 2015 업데이트 3 및 VS 2017 업데이트 3과 호환되도록하는 솔루션을 알고 있습니까? – Bandara

+0

버전 1.3.2를 참조하면 확장 프로그램이 둘 모두에서 작동합니다. –

+0

감사합니다. @Jonathon, 저는 이제 1.0.0으로 다운 그레이드했습니다. 2015 Update 3 및 2017 Update 3에서 작동하며, Visual Studio 2015.0 (RTM)보다 큰 모든 버전에서 작동 할 것으로 기대합니다. – Bandara