使用定义的自定义符号(例如:“DEBUG”)执行Roslyn条件编译

时间:2016-09-19 18:39:05

标签: c# .net roslyn conditional-compilation

我正在使用Roslyn编译一个项目,代码类似于:

var workspace = MSBuildWorkspace.Create();
var project = await workspace.OpenProjectAsync("SomeProject.csproj");
var compilation = await project.GetCompilationAsync();

我需要设置一个编译符号(例如DEBUGTRACE,但在我的情况下,完全是自定义的)。如何使用API​​执行此操作?

我看到project有一个CompilationOptions属性,但我没有看到任何相关内容。

编辑感谢@JoshVarty指出在编译之前添加这样的代码:

project = project
    .WithParseOptions(((CSharpParseOptions)project.ParseOptions)
    .WithPreprocessorSymbols("SOME_SYMBOL"));

1 个答案:

答案 0 :(得分:4)