.NET 6 以降のプロジェクトで、ログ ソリューションなど、コードのソース生成を可能にするパッケージを参照している場合は、ソース生成に固有のアナライザーがコンパイル時に実行されます。 この記事では、ソース生成コードに関連するコンパイラ診断の一覧を示します。
これらのビルドの警告またはエラーのいずれかが発生した場合は、「リファレンス」セクションに一覧表示されている診断 ID に対して提供されている特定のガイダンスに従ってください。 特定の SYSLIB1XXX
診断 ID 値を使用して警告を抑制することもできます。 詳細については、「警告を表示しない」を参照してください。
アナライザーの警告
ソース生成コード アナライザーの警告用に予約されている診断 ID 値は、SYSLIB1001
から SYSLIB1999
です。
リファレンス
次の表に、.NET 6 以降のバージョンの SYSLIB1XXX
診断のインデックスを示します。
診断 ID | Description |
---|---|
SYSLIB1001 | ログ メソッド名の先頭を _ にすることはできません |
SYSLIB1002 | ログ メッセージにログ レベル パラメーターをテンプレートとして含めません |
SYSLIB1003 | InvalidLoggingMethodParameterNameTitle |
SYSLIB1004 | ログ クラスを入れ子にされた型にすることはできません。 |
SYSLIB1005 | 必須の型定義が見つかりませんでした |
SYSLIB1006 | 複数のログ メソッドでは、1 つのクラス内で同じイベント ID を使用することはできません |
SYSLIB1007 | ログ メソッドでは void を返す必要があります |
SYSLIB1008 | ログ メソッドへの引数の 1 つで、Microsoft.Extensions.Logging.ILogger インターフェイスを実装する必要があります |
SYSLIB1009 | ログ メソッドは static である必要があります |
SYSLIB1010 | ログ メソッドは partial である必要があります |
SYSLIB1011 | ログ メソッドをジェネリックにすることはできません |
SYSLIB1012 | ログ メッセージ内の修飾子が冗長です |
SYSLIB1013 | ログ メッセージに例外パラメーターをテンプレートとして含めません |
SYSLIB1014 | ログ テンプレートに対応するメソッド引数がありません |
SYSLIB1015 | 引数がログ メッセージから参照されていません |
SYSLIB1016 | ログ メソッドに本文を含めることはできません |
SYSLIB1017 | LogLevel 値は、LoggerMessage 属性で、またはログ メソッドのパラメーターとして指定する必要があります |
SYSLIB1018 | ログ メッセージにロガー パラメーターをテンプレートとして含めません |
SYSLIB1019 | Microsoft.Extensions.Logging.ILogger 型のフィールドが見つかりませんでした |
SYSLIB1020 | Microsoft.Extensions.Logging.ILogger 型のフィールドが複数見つかりました |
SYSLIB1021 | 複数のメッセージ テンプレート項目名で大文字と小文字のみが異なっています |
SYSLIB1022 | 形式に誤りがある (たとえば、中かっこが残っている) 書式指定文字列を含めることはできません |
SYSLIB1023 | 6 個を超える引数の生成はサポートされていません |
SYSLIB1024 | ログ メソッド引数で、サポートされていない out パラメーター修飾子が使用されています |
SYSLIB1025 | 複数のログ メソッドが 1 つのクラス内で同じイベント ID を使用することはできません |
SYSLIB1026 | ログ ソース ジェネレーターでサポートされていない C# 言語バージョン。 |
SYSLIB1027 | Microsoft.Extensions.Logging.ILogger 型のプライマリ コンストラクター パラメーターがフィールドによって非表示になっている |
SYSLIB1028 | (ログ記録用に予約されています。) |
SYSLIB1029 | (ログ記録用に予約されています。) |
SYSLIB1030 | System.Text.Json ソース ジェネレーターでは、型のシリアル化メタデータが生成されませんでした |
SYSLIB1031 | System.Text.Json ソース ジェネレーターで重複する JsonTypeInfo プロパティ名が検出されました |
SYSLIB1032 | System.Text.Json ソース ジェネレーターで、部分的ではないコンテキスト クラスが検出されました |
SYSLIB1033 | System.Text.Json ソース ジェネレーターで、複数の [JsonConstructor] 注釈を持つ型が検出されました |
SYSLIB1034 | JsonSourceGenerator で JsonStringEnumConverter 注釈が見つかりました |
SYSLIB1035 | System.Text.Json ソース ジェネレーターで、複数の [JsonExtensionData] 注釈を持つ型が検出されました |
SYSLIB1036 | System.Text.Json ソース ジェネレーターで、無効な [JsonExtensionData] 注釈が検出されました |
SYSLIB1037 | System.Text.Json ソース ジェネレーターで、逆シリアル化がサポートされていない init 専用プロパティを持つ型が検出されました |
SYSLIB1038 | System.Text.Json ソース ジェネレーターで、アクセスできないアクセサーを持つ、[JsonInclude] で 注釈が付けられているプロパティが検出されました |
SYSLIB1039 | JsonSourceGenerator で、JsonSourceGenerationMode.Serialization が有効になっている JsonDerivedTypeAttribute 注釈が見つかりました |
SYSLIB1040 | GeneratedRegexAttribute の使用が無効です。 |
SYSLIB1041 | 複数の GeneratedRegexAttribute 属性が同じメソッドに適用されましたが、1 つしか許可されません。 |
SYSLIB1042 | 指定された正規表現は無効です。 |
SYSLIB1043 | GeneratedRegexAttribute メソッドは、部分、パラメーターなし、非ジェネリック、非抽象でなければならず、Regex を返す必要があります。 |
SYSLIB1044 | 内部制限により、正規表現ジェネレーターは指定された正規表現の完全なソース実装を生成できませんでした。 詳細については、生成されたソースの説明を参照してください。 |
SYSLIB1045 | GeneratedRegexAttribute を使用して、コンパイル時に正規表現の実装を生成します。 |
SYSLIB1046 | (System.Text.RegularExpressions.Generator 用に予約されています。) |
SYSLIB1047 | (System.Text.RegularExpressions.Generator 用に予約されています。) |
SYSLIB1048 | (System.Text.RegularExpressions.Generator 用に予約されています。) |
SYSLIB1049 | (System.Text.RegularExpressions.Generator 用に予約されています。) |
SYSLIB1050 | LibraryImportAttribute の使用が無効です。 |
SYSLIB1051 | 指定された型は、ソースで生成された p/invoke ではサポートされていません。 |
SYSLIB1052 | 指定された構成は、ソースで生成された p/invoke ではサポートされていません。 |
SYSLIB1053 | 指定された LibraryImportAttribute 引数を DllImportAttribute に転送することができません。 |
SYSLIB1054 | DllImportAttribute の代わりに LibraryImportAttribute を使用して、コンパイル時に p/invoke マーシャリング コードを生成します。 |
SYSLIB1055 | CustomMarshallerAttribute の使用が無効です。 |
SYSLIB1056 | 指定されたネイティブ型は無効です。 |
SYSLIB1057 | マーシャラー型に必要な図形がありません。 |
SYSLIB1058 | NativeMarshallingAttribute の使用が無効です。 |
SYSLIB1059 | マーシャラー型ではコンストラクターの割り当てがサポートされていません。 |
SYSLIB1060 | 指定されたマーシャラー型は無効です。 |
SYSLIB1061 | マーシャラー型に互換性のないメソッド シグネチャがあります。 |
SYSLIB1062 | プロジェクトは <AllowUnsafeBlocks>true</AllowUnsafeBlocks> で更新する必要があります。 |
SYSLIB1063 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1064 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1065 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1066 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1067 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1068 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1069 | (Microsoft.Interop.LibraryImportGenerator 用に予約されています。) |
SYSLIB1070 | JSImportAttribute の使用が無効です。 |
SYSLIB1071 | JSExportAttribute の使用が無効です。 |
SYSLIB1072 | 指定された型は、ソースで生成された JavaScript 相互運用ではサポートされていません。 |
SYSLIB1073 | 指定された構成型は、ソースで生成された JavaScript 相互運用ではサポートされていません。 |
SYSLIB1074 | JSImportAttribute にはアンセーフ コードが必要です。 |
SYSLIB1075 | JSImportAttribute にはアンセーフ コードが必要です。 |
SYSLIB1076 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1077 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1078 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1079 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1080 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1081 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1082 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1083 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1084 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1085 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1086 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1087 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1088 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1089 | (System.Runtime.InteropServices.JavaScript.JSImportGenerator 用に予約されています。) |
SYSLIB1090 | GeneratedComInterfaceAttribute の使用が無効です。 |
SYSLIB1091 | メソッドは、GeneratedComInterface 属性とは異なる部分宣言で宣言されます。 |
SYSLIB1092 | LibraryImport または GeneratedComInterface 属性の使用は推奨事項に従っていません。 |
SYSLIB1093 | COM インターフェイス生成の分析に失敗しました。 |
SYSLIB1094 | ベース COM インターフェイスでソースの生成に失敗しました。 このインターフェイスのコードは生成されません。 |
SYSLIB1095 | GeneratedComClassAttribute の使用が無効です。 |
SYSLIB1096 | ComImportAttribute の代わりに GeneratedComInterfaceAttribute を使用して、コンパイル時に COM マーシャリング コードを生成します。 |
SYSLIB1097 | この型では、GeneratedComInterfaceAttribute 属性を持つ少なくとも 1 つの型が実装されます。 この型を COM に渡し、この型のオブジェクトから GeneratedComInterfaceAttribute の型の COM インターフェイスを公開できるようにするには、GeneratedComClassAttribute を追加します。 |
SYSLIB1098 | EnableComHosting を使用した .NET COM ホスティングでは、組み込みの COM 相互運用のみがサポートされます。 GeneratedComInterfaceAttribute とのソース生成 COM 相互運用はサポートされていません。 |
SYSLIB1099 | System.Runtime.InteropServices.Marshal の COM 相互運用 API ではソース生成 COM がサポートされていないため、実行時に失敗します。 |
SYSLIB1100 | 構成バインド ジェネレーター: 型はサポートされていません。 |
SYSLIB1101 | 構成バインド ジェネレーター: 型のプロパティはサポートされていません。 |
SYSLIB1102 | 構成バインド ジェネレーター: プロジェクトの言語バージョンは、少なくとも C# 12 である必要があります。 |
SYSLIB1103 | 構成バインド ジェネレーター: 値の型は、構成 'Bind' メソッドへの無効な入力です。 |
SYSLIB1104 | 構成バインド ジェネレーター: ジェネレーターでターゲット構成の種類を特定できません。 |
SYSLIB1105 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1106 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1107 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1108 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1109 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1110 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1111 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1112 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1113 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1114 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1115 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1116 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1117 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1118 | (Microsoft.Extensions.Configuration.Binder.SourceGeneration 用に予約されています。) |
SYSLIB1201 | ValidateObjectMembersAttribute と ValidateEnumeratedItemsAttribute はオープン ジェネリック型のフィールドやプロパティで使用できません。 |
SYSLIB1202 | メンバー型には、検証するフィールドもプロパティもありません。 |
SYSLIB1203 | 型には、検証するフィールドもプロパティもありません。 |
SYSLIB1204 | OptionsValidatorAttribute という注釈が付けられた型は、必要なインターフェイスを実装しません。 |
SYSLIB1205 | 型には、'Validate' メソッドの実装が既に含まれています。 |
SYSLIB1206 | プライベートのフィールドまたはプロパティを検証できません。 |
SYSLIB1207 | メンバー型は列挙できません。 |
SYSLIB1208 | 推移的または列挙可能な検証に使用される検証コントロールには、パラメーターのないコンストラクターを与える必要があります。 |
SYSLIB1209 | OptionsValidatorAttribute は静的クラスに適用できません。 |
SYSLIB1210 | ValidateObjectMembersAttribute または ValidateEnumeratedItemsAttribute 属性に指定されている null 検証コントロール型。 |
SYSLIB1211 | モデル型でサポートされていない循環参照。 |
SYSLIB1212 | 推移的な検証が不足している可能性があるメンバー。 |
SYSLIB1213 | 列挙可能な検証が不足している可能性があるメンバー。 |
SYSLIB1214 | 定数、静的フィールド、プロパティを検証できません。 |
SYSLIB1215 | メンバーの検証属性は、検証コントロール型からアクセスできません。 |
SYSLIB1216 | オプション検証ソース ジェネレーターではサポートされていない C# 言語バージョン。 |
SYSLIB1217 | 検証属性は、文字列型、配列型、ICollection 型のプロパティにのみ適用されます。その他の型では使用できません。 |
SYSLIB1218 | (Microsoft.Extensions.Options.SourceGeneration のために予約されています) |
SYSLIB1219 | (Microsoft.Extensions.Options.SourceGeneration のために予約されています) |
SYSLIB1220 | JsonSourceGenerator で、無効な型引数を持つ [JsonConverterAttribute] が検出されました。 |
SYSLIB1221 | JsonSourceGenerator では、この C# 言語バージョンはサポートされていません。 |
SYSLIB1222 | JsonConstructorAttribute で注釈が付けられたコンストラクターにアクセスできません。 |
SYSLIB1223 | JsonConstructorAttribute で注釈が付けられたコンストラクターにアクセスできません。 |
SYSLIB1224 | JsonSerializableAttribute で注釈が付けられた型は、JsonSerializerContext から派生するクラスである必要があります。 |
SYSLIB1225 | (System.Text.Json.SourceGeneration 用に予約されています。) |
SYSLIB1226 | (System.Text.Json.SourceGeneration 用に予約されています。) |
SYSLIB1227 | (System.Text.Json.SourceGeneration 用に予約されています。) |
SYSLIB1228 | (System.Text.Json.SourceGeneration 用に予約されています。) |
SYSLIB1229 | (System.Text.Json.SourceGeneration 用に予約されています。) |
警告を表示しない
可能な場合は、回避策の 1 つを使用することをお勧めします。 ただし、コードを変更できない場合、#pragma
ディレクティブか <NoWarn>
プロジェクト設定で警告を非表示にできます。 SYSLIB1XXX
ソース ジェネレーター診断がエラーとして表示されない場合は、コードまたはプロジェクト ファイルで警告を非表示にすることができます。
コードで警告を抑制するには:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
プロジェクト ファイルで警告を抑制するには:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB1002 project-wide -->
<NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB1006</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB1002;SYSLIB1006;SYSLIB1007</NoWarn>
</PropertyGroup>
</Project>
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET