Sdílet prostřednictvím


Diagnostika generátoru zdrojového kódu v .NET 6 nebo novější

Pokud váš projekt .NET 6+ odkazuje na balíček, který umožňuje generování zdrojového kódu, například řešení protokolování, pak se analyzátory specifické pro generování zdroje spustí v době kompilace. Tento článek uvádí diagnostiku kompilátoru související se zdrojovým kódem.

Pokud narazíte na některá z těchto upozornění nebo chyb sestavení, postupujte podle konkrétních pokynů uvedených pro ID diagnostiky uvedené v části Reference . Upozornění můžete také potlačit pomocí konkrétní SYSLIB1XXX hodnoty ID diagnostiky. Další informace naleznete v tématu Potlačení upozornění.

Upozornění analyzátoru

Hodnoty ID diagnostiky vyhrazené pro upozornění analyzátoru kódu generovaného zdrojem jsou SYSLIB1001 prostřednictvím SYSLIB1999.

Reference

Následující tabulka obsahuje index SYSLIB1XXX diagnostiky v .NET 6 a novějších verzích.

ID diagnostiky Popis
SYSLIB1001 Názvy metod protokolování nemůžou začínat na _
SYSLIB1002 Nezahrnujte do zprávy protokolování parametry na úrovni protokolu jako šablony.
SYSLIB1003 InvalidLoggingMethodParameterNameTitle
SYSLIB1004 Třída protokolování nemůže být vnořených typech.
SYSLIB1005 Nelze najít definici požadovaného typu.
SYSLIB1006 Více metod protokolování nemůže použít stejné ID události v rámci třídy.
SYSLIB1007 Metody protokolování musí vracet void
SYSLIB1008 Jeden z argumentů metody protokolování musí implementovat Microsoft.Extensions.Logging.ILogger rozhraní
SYSLIB1009 Metody protokolování musí být static
SYSLIB1010 Metody protokolování musí být partial
SYSLIB1011 Metody protokolování nemohou být obecné.
SYSLIB1012 Redundantní kvalifikátor ve zprávě protokolování
SYSLIB1013 Nezahrnujte do zprávy protokolování parametry výjimky jako šablony.
SYSLIB1014 Šablona protokolování nemá žádný odpovídající argument metody.
SYSLIB1015 Argument se neodkazuje ze zprávy protokolování.
SYSLIB1016 Metody protokolování nemohou mít tělo.
SYSLIB1017 Hodnota LogLevel musí být zadána v atributu LoggerMessage nebo jako parametr metody protokolování.
SYSLIB1018 Nezahrnujte do zprávy protokolování parametry protokolovacího nástroje jako šablony.
SYSLIB1019 Nepovedlo se najít pole typu Microsoft.Extensions.Logging.ILogger
SYSLIB1020 Bylo nalezeno více polí typu. Microsoft.Extensions.Logging.ILogger
SYSLIB1021 Více názvů položek šablony zpráv se liší pouze podle velikosti písmen.
SYSLIB1022 Nelze mít chybně formátované řetězce formátu (například složených složených závorek).
SYSLIB1023 Generování více než šesti argumentů se nepodporuje.
SYSLIB1024 Argument metody protokolování používá nepodporovaný out modifikátor parametrů.
SYSLIB1025 Více metod protokolování nemůže použít stejný název události v rámci třídy.
SYSLIB1026 Jazyková verze jazyka C# není podporována generátorem zdrojů protokolování.
SYSLIB1027 Parametr primárního konstruktoru typu Microsoft.Extensions.Logging.ILogger je skrytý polem.
SYSLIB1028 (Vyhrazeno pro protokolování.)
SYSLIB1029 (Vyhrazeno pro protokolování.)
SYSLIB1030 Generátor System.Text.Json zdrojů negeneroval metadata serializace pro typ.
SYSLIB1031 Ve zdrojovém generátoru System.Text.Json došlo k duplicitnímu JsonTypeInfo názvu vlastnosti.
SYSLIB1032 Zdrojový System.Text.Json generátor zjistil třídu kontextu, která není částečná.
SYSLIB1033 Zdrojový System.Text.Json generátor zjistil typ, který má více [JsonConstructor] poznámek.
SYSLIB1034 JsonSourceGenerator zjistil poznámku JsonStringEnumConverter
SYSLIB1035 Zdrojový System.Text.Json generátor zjistil typ, který má více [JsonExtensionData] poznámek.
SYSLIB1036 Ve zdrojovém generátoru System.Text.Json byla zjištěna neplatná [JsonExtensionData] poznámka.
SYSLIB1037 Zdrojový System.Text.Json generátor zjistil typ s inicializačními vlastnostmi, pro které se deserializace nepodporuje.
SYSLIB1038 Zdrojový System.Text.Json generátor zjistil vlastnost anotovanou s [JsonInclude] nepřístupnými přístupovými objekty.
SYSLIB1039 JsonSourceGenerator zjistil poznámku s JsonDerivedTypeAttribute povolenou JsonSourceGenerationMode.Serialization
SYSLIB1040 Neplatné GeneratedRegexAttribute použití
SYSLIB1041 Na stejnou metodu se použilo více GeneratedRegexAttribute atributů, ale je povoleno pouze jedno.
SYSLIB1042 Zadaný regulární výraz je neplatný.
SYSLIB1043 Metoda GeneratedRegexAttribute musí být částečná, bez parametrů, ne generická a ne abstraktní a návratová Regex.
SYSLIB1044 Generátor regulárních výrazů nemohl vygenerovat úplnou zdrojovou implementaci pro zadaný regulární výraz kvůli internímu omezení. Další podrobnosti najdete v vysvětlení ve vygenerovaném zdroji.
SYSLIB1045 Slouží GeneratedRegexAttribute k vygenerování implementace regulárního výrazu v době kompilace.
SYSLIB1046 (Vyhrazeno pro System.Text.RegularExpressions.Generator.)
SYSLIB1047 (Vyhrazeno pro System.Text.RegularExpressions.Generator.)
SYSLIB1048 (Vyhrazeno pro System.Text.RegularExpressions.Generator.)
SYSLIB1049 (Vyhrazeno pro System.Text.RegularExpressions.Generator.)
SYSLIB1050 Neplatné LibraryImportAttribute použití
SYSLIB1051 Zadaný typ není podporován zdrojovým vygenerovanými voláními p/.
SYSLIB1052 Zadaná konfigurace není podporována zdrojovými voláními p/invoke.
SYSLIB1053 Zadané LibraryImportAttribute argumenty nelze předat do DllImportAttribute.
SYSLIB1054 LibraryImportAttribute Místo vygenerování kódu při kompilaci je možné DllImportAttribute vygenerovat zařazování kódu p/invoke.
SYSLIB1055 Neplatné CustomMarshallerAttribute použití
SYSLIB1056 Zadaný nativní typ je neplatný.
SYSLIB1057 Typ marshalleru nemá požadovaný tvar.
SYSLIB1058 Neplatné NativeMarshallingAttribute použití
SYSLIB1059 Typ marshalleru nepodporuje alokační konstruktor.
SYSLIB1060 Zadaný typ marshalleru je neplatný.
SYSLIB1061 Typ marshalleru má nekompatibilní podpisy metody.
SYSLIB1062 Projekt musí být aktualizován pomocí <AllowUnsafeBlocks>true</AllowUnsafeBlocks>.
SYSLIB1063 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1064 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1065 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1066 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1067 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1068 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1069 (Vyhrazeno pro Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1070 Neplatné JSImportAttribute použití
SYSLIB1071 Neplatné JSExportAttribute použití
SYSLIB1072 Zadaný typ není podporován zdrojovým generovaným javascriptovým interoperabilitou.
SYSLIB1073 Zadaná konfigurace není podporována zdrojovým generovaným javascriptovým zprostředkovatele.
SYSLIB1074 JSImportAttribute vyžaduje nebezpečný kód.
SYSLIB1075 JSImportAttribute vyžaduje nebezpečný kód.
SYSLIB1076 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1077 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1078 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1079 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1080 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1081 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1082 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1083 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1084 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1085 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1086 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1087 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1088 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1089 (Vyhrazeno pro System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1090 Neplatné GeneratedComInterfaceAttribute použití
SYSLIB1091 Metoda je deklarována v jiné částečné deklaraci než GeneratedComInterface atribut.
SYSLIB1092 Použití atributu LibraryImportGeneratedComInterface neodpovídá doporučením.
SYSLIB1093 Analýza generování rozhraní MODELU COM se nezdařila.
SYSLIB1094 Základní rozhraní MODELU COM se nepodařilo vygenerovat zdroj. Kód se pro toto rozhraní negeneruje.
SYSLIB1095 Neplatné GeneratedComClassAttribute použití
SYSLIB1096 GeneratedComInterfaceAttribute Místo generování kódu com při kompilaci.ComImportAttribute
SYSLIB1097 Tento typ implementuje alespoň jeden typ s atributem GeneratedComInterfaceAttribute . GeneratedComClassAttribute Přidejte pro povolení předávání tohoto typu modelu COM a zveřejnění rozhraní COM pro typy s GeneratedComInterfaceAttribute objekty tohoto typu.
SYSLIB1098 Hostování .NET COM s EnableComHosting podporou pouze integrované spolupráce modelu COM. Nepodporuje zdrojově vygenerovanou interoperabilitu modelu COM s GeneratedComInterfaceAttribute.
SYSLIB1099 Rozhraní COM Interop API na System.Runtime.InteropServices.Marshal nepodporují objekty COM generované zdrojem a za běhu selžou.
SYSLIB1100 Generátor vazeb konfigurace: Typ není podporován.
SYSLIB1101 Generátor vazeb konfigurace: Vlastnost typu není podporována.
SYSLIB1102 Generátor vazeb konfigurace: Jazyková verze projectu musí být minimálně C# 12.
SYSLIB1103 Generátor vazeb konfigurace: Typy hodnot jsou neplatné vstupy pro konfiguraci metod Bind.
SYSLIB1104 Generátor vazeb konfigurace: Generátor nemůže určit cílový typ konfigurace.
SYSLIB1105 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1106 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)(Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1107 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1108 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1109 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1110 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1111 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1112 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1113 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1114 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1115 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1116 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1117 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1118 (Vyhrazeno pro Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1201 Nelze použít ValidateObjectMembersAttribute pole nebo ValidateEnumeratedItemsAttribute vlastnosti s otevřenými obecnými typy.
SYSLIB1202 Typ člena nemá žádná pole ani vlastnosti k ověření.
SYSLIB1203 Typ nemá žádná pole ani vlastnosti k ověření.
SYSLIB1204 Typ opatřený poznámkami OptionsValidatorAttribute neimplementuje potřebné rozhraní.
SYSLIB1205 Typ již obsahuje implementaci metody Validate.
SYSLIB1206 Nelze ověřit soukromá pole nebo vlastnosti.
SYSLIB1207 Typ členu není výčtový.
SYSLIB1208 Validátory používané pro tranzitivní nebo výčtové ověřování musí mít konstruktor bez parametrů.
SYSLIB1209 OptionsValidatorAttribute nelze použít na statickou třídu.
SYSLIB1210 Typ validátoru ValidateObjectMembersAttribute null zadaný pro atributy.ValidateEnumeratedItemsAttribute
SYSLIB1211 Nepodporované cyklický odkazy v typech modelů
SYSLIB1212 Člen potenciálně chybí tranzitivní ověření.
SYSLIB1213 Člen potenciálně chybí výčtové ověření.
SYSLIB1214 Nelze ověřit konstanty, statická pole ani vlastnosti.
SYSLIB1215 Ověřovací atribut člena je nepřístupný z typu validátoru.
SYSLIB1216 Jazyková verze jazyka C# není podporována generátorem zdrojů ověřování možností.
SYSLIB1217 Ověřovací atribut se vztahuje pouze na vlastnosti typu řetězec, pole nebo ICollection; nelze jej použít s jinými typy.
SYSLIB1218 (Vyhrazeno pro Microsoft.Extensions.Options.SourceGeneration.)
SYSLIB1219 (Vyhrazeno pro Microsoft.Extensions.Options.SourceGeneration.)
SYSLIB1220 JsonSourceGenerator zjistil [JsonConverterAttribute] s neplatným argumentem typu.
SYSLIB1221 JsonSourceGenerator nepodporuje tuto jazykovou verzi jazyka C#.
SYSLIB1222 Konstruktor s poznámkami jsonConstructorAttribute je nepřístupný.
SYSLIB1223 Konstruktor s poznámkami jsonConstructorAttribute je nepřístupný.
SYSLIB1224 Typy anotované jsonSerializableAttribute musí být třídy odvozené z JsonSerializerContext.
SYSLIB1225 (Vyhrazeno pro System.Text.Json.SourceGeneration.)
SYSLIB1226 (Vyhrazeno pro System.Text.Json.SourceGeneration.)
SYSLIB1227 (Vyhrazeno pro System.Text.Json.SourceGeneration.)
SYSLIB1228 (Vyhrazeno pro System.Text.Json.SourceGeneration.)
SYSLIB1229 (Vyhrazeno pro System.Text.Json.SourceGeneration.)
SYSLIB1230 Odvození z GeneratedComInterface-atributovaného rozhraní definovaného v jiném sestavení není podporováno.

Potlačení upozornění

Pokud je to možné, doporučujeme použít jedno z alternativních řešení. Pokud ale kód nemůžete změnit, můžete upozornění potlačit direktivou #pragma<NoWarn> nebo nastavením projektu. Pokud se diagnostika generátoru SYSLIB1XXX zdroje nezobrazuje jako chyba, můžete potlačit upozornění v kódu nebo v souboru projektu.

Potlačení upozornění v kódu:

// Disable the warning.
#pragma warning disable SYSLIB1006

// Code that generates compiler diagnostic.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB1006

Potlačení upozornění v souboru projektu:

<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>