はじめに
SourceGeneratorで独自警告を実装していた際に、以下のような警告をRiderが表示してきました。
RS2008: 規則を含むアナライザープロジェクトのアナライザーリリース追跡を有効にしてください

この対処法について調べたので書き残しておこうと思います。
概要
Analyzerがどのバージョンでリリースされたか・リリース予定かを記述することが推奨されています。
Release tracking analyzer enables third party analyzer packages to define analyzer releases with associated versions.
// DeepL翻訳
リリース追跡アナライザーは、サードパーティ製アナライザー・パッケージがアナライザーのリリースと関連バージョンを定義できるようにします。
例えば.NET Foundation入りしてMSの中の人が管理しているMessagePack-CSharp
でも、その設定ファイルがあります。
github.com
github.com
対応方法
ファイルを用意する
プロジェクト直下に以下の2ファイルを配置します。
AnalyzerReleases.Shipped.md
AnalyzerReleases.Unshipped.md
また.csproj
でそれを読み込むようにします。
<ItemGroup> <None Remove="AnalyzerReleases.Shipped.md" /> <None Remove="AnalyzerReleases.Unshipped.md" /> </ItemGroup> <ItemGroup> <AdditionalFiles Include="AnalyzerReleases.Shipped.md" /> <AdditionalFiles Include="AnalyzerReleases.Unshipped.md" /> </ItemGroup>
リリース前のAnalyzerとリリース後のAnalyzerを記述する
以下のファイルにそれぞれのAnalyzerの情報を書き込みます。
AnalyzerReleases.Shipped.md
: リリース済のAnalyzerを記述AnalyzerReleases.Unshipped.md
: 未リリースのAnalyzerを記述
↓ AnalyzerReleases.Shipped.md
## Release 1.0 ### New Rules Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- CA1000 | Design | Warning | CA1000_AnalyzerName, [Documentation](CA1000_Documentation_Link) CA2000 | Security | Info | CA2000_AnalyzerName, [Documentation](CA2000_Documentation_Link) CA3000 | Usage | Disabled | CA3000_AnalyzerName, [Documentation](CA3000_Documentation_Link) ## Release 2.0 ### New Rules Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- CA4000 | Design | Warning | CA4000_AnalyzerName, [Documentation](CA4000_Documentation_Link) ### Removed Rules Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- CA3000 | Usage | Disable | CA3000_AnalyzerName, [Documentation](CA3000_Documentation_Link) ### Changed Rules Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- CA2000 | Security | Disabled | CA2000_AnalyzerName, [Documentation](CA2000_Documentation_Link)
↓ AnalyzerReleases.Unshipped.md
### New Rules Rule ID | Category | Severity | Notes --------|----------|----------|-------------------- CA5000 | Security | Warning | CA5000_AnalyzerName CA6000 | Design | Warning | CA6000_AnalyzerName
そしてリリースをしたタイミングでAnalyzerReleases.Unshipped.md
からAnalyzerReleases.Shipped.md
に移動させる必要があります。忘れずにやりましょう。