我即将为我的 Roslyn 代码分析器及其代码修复程序创建测试。我正在使用生成的测试项目模板,其中包含许多预定义的方法来应用和验证代码修复。
但是,我的分析器的代码修复程序将替换null
为default
. 默认文字仅在 C# 7.1 中添加,但生成的测试助手方法创建的默认项目使用 C# 7.0,因此我的测试总是失败。我不想更改我的分析器以使用default(<type>)
(实际上存在分析器未知类型的情况)。
这是生成的方法如何使用项目创建新工作区的方式:
var solution = new AdhocWorkspace()
.CurrentSolution
.AddProject(projectId, TestProjectName, TestProjectName, language)
.AddMetadataReference(projectId, CorlibReference)
.AddMetadataReference(projectId, SystemCoreReference)
.AddMetadataReference(projectId, CSharpSymbolsReference)
.AddMetadataReference(projectId, CodeAnalysisReference);
我不知道如何在此处指定 .NET 目标框架版本。在 .csproj 文件中,我们添加以下标签:
<TargetFramework>net472</TargetFramework>
如何使用 Roslyn 代码分析器做同样的事情?