我正在使用Roslyn编译一个项目,代码类似于:
var workspace = MSBuildWorkspace.Create();
var project = await workspace.OpenProjectAsync("SomeProject.csproj");
var compilation = await project.GetCompilationAsync();
我需要设置一个编译符号(例如DEBUG
或TRACE
,但在我的情况下,完全是自定义的)。如何使用API执行此操作?
我看到project
有一个CompilationOptions
属性,但我没有看到任何相关内容。
编辑感谢@JoshVarty指出在编译之前添加这样的代码:
project = project
.WithParseOptions(((CSharpParseOptions)project.ParseOptions)
.WithPreprocessorSymbols("SOME_SYMBOL"));