【问题标题】:Perform Roslyn conditional compilation with custom symbol (eg: "DEBUG") defined使用定义的自定义符号(例如:“DEBUG”)执行 Roslyn 条件编译
【发布时间】:2017-01-27 13:03:19
【问题描述】:

我正在使用 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"));

【问题讨论】:

    标签: c# .net roslyn conditional-compilation


    【解决方案1】:

    【讨论】:

    • 非常感谢 Josh 的回答以及您在 Roslyn 上发表的精彩系列博文。
    猜你喜欢
    • 2019-03-24
    • 2010-10-03
    • 2010-12-31
    • 2018-02-16
    • 1970-01-01
    • 2012-01-06
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多