使用定义的自定义符号(例如:"DEBUG")执行 Roslyn 条件编译
Perform Roslyn conditional compilation with custom symbol (eg: "DEBUG") defined
我正在使用 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"));
我想你正在寻找 Project.WithParseOptions()
and WithPreprocessorSymbols()
我正在使用 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"));
我想你正在寻找 Project.WithParseOptions()
and WithPreprocessorSymbols()