2016-08-29 3 views
6

Roslyn .NET 코어를 사용하여 C# 코드를 생성하는 방법이 있습니까? 나는 Microsoft.CodeAnalysis.CSharp 패키지에서 SyntaxFactory를 사용해 보았습니다. 현재 내가 갇혀있는 문제는 적절한 형식의 코드를 텍스트로 가져 오는 것입니다. 그들은 모두 .NET 코어와 호환되지 않습니다 패키지 Microsoft.CodeAnalysis.CSharp.Workspaces를 사용하는 것이 내가 지금까지 여기Roslyn 및 .NET 코어로 C# 코드 생성

var ws = new CustomWorkspace(); 
ws.Options.WithChangedOption (CSharpFormattingOptions.IndentBraces, true); 
var code = Formatter.Format (item, ws); 

문제 같은 것을 사용 본 적이

모든 샘플, 그 순간. .NET Core에서 Roslyn을 코드 생성기로 사용하기위한 대체 경로 나 해결 방법이 있습니까?

+0

Microsoft.CodeAnalysis.CSharp.Workspaces 1.3.2'netstandard1.3', 그것은 있도록 지원 .Net 코어와 호환 가능해야합니다. – svick

+0

문제는 Microsoft.CodeAnalysis.CSharp.Workspaces가 아닌 종속성과 관련이 있습니다. "종속성 Microsoft.Composition 1.0.27은 .NETCoreApp, Version = v1.0 프레임 워크를 지원하지 않습니다." – Fionn

+4

Microsoft.Composition은 PCL이므로, "imports": "portable-net45 + win8 + wp8 + wpa81"'을 project.json에 추가하면 .Net Core에서 사용할 수 있어야합니다. – svick

답변

11

패키지 Microsoft.CodeAnalysis.CSharp.Workspaces 1.3.2는 netstandard1.3을 지원하므로 .Net Core와 호환되어야합니다. 그러나 이것은 1.0.27에 의존하며 portable-net45+win8+wp8+wpa81 만 지원합니다. 이 프레임 워크 모니 커는 .Net Core와 호환되지만 프로젝트 .json에서 가져 오는 경우에만 가능합니다.

이이 일을하는 것을 의미

, 당신의 project.json의 관련 부분은 다음과 같아야합니다

"dependencies": { 
    "Microsoft.CodeAnalysis.CSharp.Workspaces": "1.3.2" 
}, 
"frameworks": { 
    "netcoreapp1.0": { 
    "dependencies": { 
     "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0" 
     } 
    }, 
    "imports": "portable-net45+win8+wp8+wpa81" 
    } 
}