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 コード アナライザーで同じことを行うには?