Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli projekt .NET 6 lub nowszy odwołuje się do pakietu, który umożliwia generowanie kodu źródłowego, na przykład rozwiązanie do rejestrowania, analizatory specyficzne dla generowania źródła będą uruchamiane w czasie kompilacji. W tym artykule wymieniono diagnostykę kompilatora związaną z kodem wygenerowanym przez źródło.
Jeśli wystąpi jedno z tych ostrzeżeń lub błędów kompilacji, postępuj zgodnie z określonymi wskazówkami podanymi dla identyfikatora diagnostycznego wymienionego w sekcji Dokumentacja . Można również pominąć ostrzeżenia przy użyciu określonej SYSLIB1XXX wartości identyfikatora diagnostycznego. Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.
Ostrzeżenia analizatora
Wartości identyfikatorów diagnostycznych zarezerwowane dla ostrzeżeń analizatora kodu źródłowego generowanego są od SYSLIB1001 do SYSLIB1999.
Referencja
Poniższa tabela zawiera indeks do diagnostyki SYSLIB1XXX w .NET 6 i nowszych wersjach.
| Identyfikator diagnostyczny | opis |
|---|---|
| SYSLIB1001 | Nazwy metod rejestrowania nie mogą zaczynać się od _ |
| SYSLIB1002 | Nie dołączaj parametrów poziomu dziennika jako szablonów w wiadomości dziennika |
| SYSLIB1003 | InvalidLoggingMethodParameterNameTitle |
| SYSLIB1004 | Klasa logowania nie może być w typach zagnieżdżonych. |
| SYSLIB1005 | Nie można odnaleźć wymaganej definicji typu |
| SYSLIB1006 | Wiele metod rejestrowania nie może używać tego samego identyfikatora zdarzenia w klasie |
| SYSLIB1007 | Metody logowania muszą zwracać void |
| SYSLIB1008 | Jeden z argumentów metody rejestrowania musi implementować Microsoft.Extensions.Logging.ILogger interfejs |
| SYSLIB1009 | Metody rejestrowania muszą być następujące: static |
| SYSLIB1010 | Metody rejestrowania muszą być następujące: partial |
| SYSLIB1011 | Metody rejestrowania nie mogą używać allows ref struct ograniczenia |
| SYSLIB1012 | Nadmiarowy kwalifikator w komunikacie logowania |
| SYSLIB1013 | Nie dołączaj parametrów wyjątku jako szablonów w komunikacie rejestrowania |
| SYSLIB1014 | Szablon logowania nie ma odpowiadającego argumentu metody |
| SYSLIB1015 | Argument nie jest przywoływany w komunikacie logowania |
| SYSLIB1016 | Metody rejestrowania nie mogą mieć treści |
| SYSLIB1017 | Wartość LogLevel musi być podana w atrybucie LoggerMessage lub jako parametr metody rejestrowania |
| SYSLIB1018 | Nie dołączaj parametrów rejestratora jako szablonów w komunikacie rejestrowania |
| SYSLIB1019 | Nie można odnaleźć pola typu Microsoft.Extensions.Logging.ILogger |
| SYSLIB1020 | Znaleziono wiele pól typu Microsoft.Extensions.Logging.ILogger |
| SYSLIB1021 | Wiele nazw elementów szablonu wiadomości różni się tylko wielkością liter |
| SYSLIB1022 | Nie można mieć źle sformułowanych ciągów formatu (na przykład zwisające nawiasy klamrowe) |
| SYSLIB1023 | Generowanie więcej niż sześciu argumentów nie jest obsługiwane |
| SYSLIB1024 | Argument metody rejestrowania używa nieobsługiwanego out modyfikatora parametrów |
| SYSLIB1025 | Wiele metod rejestrowania nie może używać tej samej nazwy zdarzenia w klasie |
| SYSLIB1026 | Wersja języka C# nie jest obsługiwana przez generator kodu dla logowania. |
| SYSLIB1027 | Podstawowy parametr konstruktora typu Microsoft.Extensions.Logging.ILogger jest ukryty przez pole |
| SYSLIB1028 | Argument metody rejestrowania używa nieobsługiwanego params lub scoped modyfikatora parametrów |
| SYSLIB1029 | Parametr metody rejestrowania jest parametrem ref struct |
| SYSLIB1030 | Generator System.Text.Json źródła nie wygenerował metadanych serializacji dla typu |
| SYSLIB1031 | Generator System.Text.Json źródła napotkał zduplikowaną JsonTypeInfo nazwę właściwości |
| SYSLIB1032 | Generator System.Text.Json źródła napotkał klasę kontekstu, która nie jest częściowa |
| SYSLIB1033 | Generator System.Text.Json źródła napotkał typ z wieloma [JsonConstructor] adnotacjami |
| SYSLIB1034 | Element JsonSourceGenerator napotkał adnotację JsonStringEnumConverter |
| SYSLIB1035 | Generator źródła System.Text.Json napotkał typ, który ma wiele adnotacji [JsonExtensionData] |
| SYSLIB1036 | Generator System.Text.Json źródła napotkał nieprawidłową [JsonExtensionData] adnotację |
| SYSLIB1037 | Generator System.Text.Json źródła napotkał typ z właściwościami tylko inicjowania, dla których deserializacja nie jest obsługiwana |
| SYSLIB1038 | Generator System.Text.Json źródła napotkał właściwość oznaczoną adnotacją [JsonInclude], która ma niedostępne akcesory |
| SYSLIB1039 | Element JsonSourceGenerator napotkał adnotację z włączoną obsługą JsonDerivedTypeAttributeJsonSourceGenerationMode.Serialization |
| SYSLIB1040 | Nieprawidłowe GeneratedRegexAttribute użycie. |
| SYSLIB1041 | Do tej samej metody zastosowano wiele GeneratedRegexAttribute atrybutów, ale tylko jeden z nich jest dozwolony. |
| SYSLIB1042 | Określone wyrażenie regularne jest nieprawidłowe. |
| SYSLIB1043 | GeneratedRegexAttribute Metoda musi być częściowa, bez parametrów, niegeneryczna i nie abstrakcyjna oraz zwracać wartość Regex. |
| SYSLIB1044 | Generator wyrażeń regularnych nie może wygenerować pełnej implementacji źródła dla określonego wyrażenia regularnego z powodu wewnętrznego ograniczenia. Aby uzyskać więcej informacji, zobacz wyjaśnienie wygenerowanego źródła. |
| SYSLIB1045 | Użyj GeneratedRegexAttribute polecenia , aby wygenerować implementację wyrażeń regularnych w czasie kompilacji. |
| SYSLIB1046 | (Zarezerwowane dla System.Text.RegularExpressions.Generator). |
| SYSLIB1047 | (Zarezerwowane dla System.Text.RegularExpressions.Generator). |
| SYSLIB1048 | (Zarezerwowane dla System.Text.RegularExpressions.Generator). |
| SYSLIB1049 | (Zarezerwowane dla System.Text.RegularExpressions.Generator). |
| SYSLIB1050 | Nieprawidłowe LibraryImportAttribute użycie. |
| SYSLIB1051 | Określony typ nie jest obsługiwany przez wywołania p/invoke wygenerowane przez źródło. |
| SYSLIB1052 | Określona konfiguracja nie jest obsługiwana przez wywołania p/invoke wygenerowane przez źródło. |
| SYSLIB1053 | Nie można przekazać określonych LibraryImportAttribute argumentów do DllImportAttribute. |
| SYSLIB1054 | Użyj LibraryImportAttribute zamiast DllImportAttribute, aby wygenerować kod marshalling p/invoke podczas kompilacji. |
| SYSLIB1055 | Nieprawidłowe CustomMarshallerAttribute użycie. |
| SYSLIB1056 | Określony typ pierwotny jest nieprawidłowy. |
| SYSLIB1057 | Typ marshallera nie ma wymaganego kształtu. |
| SYSLIB1058 | Nieprawidłowe NativeMarshallingAttribute użycie. |
| SYSLIB1059 | Typ marshallera nie obsługuje konstruktora alokującego. |
| SYSLIB1060 | Określony typ marshallera jest nieprawidłowy. |
| SYSLIB1061 | Typ marshaller ma niezgodne sygnatury metody. |
| SYSLIB1062 | Projekt musi zostać zaktualizowany przy użyciu <AllowUnsafeBlocks>true</AllowUnsafeBlocks>. |
| SYSLIB1063 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1064 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1065 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1066 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1067 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1068 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1069 | (Zarezerwowane dla Microsoft.Interop.LibraryImportGenerator). |
| SYSLIB1070 | Nieprawidłowe JSImportAttribute użycie. |
| SYSLIB1071 | Nieprawidłowe JSExportAttribute użycie. |
| SYSLIB1072 | Określony typ nie jest obsługiwany przez międzyoperację języka JavaScript wygenerowaną przez źródło. |
| SYSLIB1073 | Określona konfiguracja nie jest obsługiwana przez międzyoperację języka JavaScript wygenerowaną przez źródło. |
| SYSLIB1074 | JSImportAttribute wymaga niebezpiecznego kodu. |
| SYSLIB1075 | JSImportAttribute wymaga niebezpiecznego kodu. |
| SYSLIB1076 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1077 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1078 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1079 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1080 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1081 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1082 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1083 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1084 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1085 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1086 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1087 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1088 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1089 | (Zarezerwowane dla elementu System.Runtime.InteropServices.JavaScript.JSImportGenerator). |
| SYSLIB1090 | Nieprawidłowe GeneratedComInterfaceAttribute użycie. |
| SYSLIB1091 | Metoda jest zadeklarowana w innym częściowym zadeklarowaniu niż atrybut GeneratedComInterface. |
| SYSLIB1092 | Użycie atrybutu LibraryImport lub GeneratedComInterface nie jest zgodne z zaleceniem. |
| SYSLIB1093 | Analiza generowania interfejsu COM nie powiodła się. |
| SYSLIB1094 | Podstawowy interfejs COM nie wygenerował źródła. Kod nie zostanie wygenerowany dla tego interfejsu. |
| SYSLIB1095 | Nieprawidłowe GeneratedComClassAttribute użycie. |
| SYSLIB1096 | Użyj GeneratedComInterfaceAttribute zamiast ComImportAttribute do generowania kodu marshalingu COM w czasie kompilacji. |
| SYSLIB1097 | Ten typ implementuje co najmniej jeden typ z atrybutem GeneratedComInterfaceAttribute . Dodaj GeneratedComClassAttribute, aby umożliwić przekazywanie tego typu do COM i uwidocznienie interfejsów COM dla typów, które obejmują GeneratedComInterfaceAttribute z obiektów tego typu. |
| SYSLIB1098 | .NET hosting COM z EnableComHosting obsługuje tylko wbudowaną komunikację z COM. Nie obsługuje on międzyoperacjności modelu COM generowanego przez źródło za pomocą polecenia GeneratedComInterfaceAttribute. |
| SYSLIB1099 | Interfejsy API międzyoperacyjności COM na System.Runtime.InteropServices.Marshal nie obsługują COM generowanego przez źródło i nie będą działać w czasie wykonywania. |
| SYSLIB1100 | Generator powiązań konfiguracji: typ nie jest obsługiwany. |
| SYSLIB1101 | Generator powiązań konfiguracji: właściwość typu nie jest obsługiwana. |
| SYSLIB1102 | Generator wiązania konfiguracji: wersja językowa projektu musi być co najmniej C# 12. |
| SYSLIB1103 | Generator powiązań konfiguracji: typy wartości są nieprawidłowymi danymi wejściowymi do metod konfiguracji "Bind". |
| SYSLIB1104 | Generator powiązań konfiguracji: Generator nie może określić docelowego typu konfiguracji. |
| SYSLIB1105 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1106 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration.)(Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration.) |
| SYSLIB1107 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1108 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1109 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1110 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1111 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1112 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1113 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1114 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1115 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1116 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1117 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1118 | (Zarezerwowane dla Microsoft.Extensions.Configuration.Binder.SourceGeneration).) |
| SYSLIB1201 | Nie można używać ValidateObjectMembersAttributeValidateEnumeratedItemsAttribute pól ani właściwości z otwartymi typami ogólnymi. |
| SYSLIB1202 | Typ elementu członkowskiego nie ma pól ani właściwości do zweryfikowania. |
| SYSLIB1203 | Typ nie ma pól ani właściwości do zweryfikowania. |
| SYSLIB1204 | Typ z adnotacjami OptionsValidatorAttribute nie implementuje niezbędnego interfejsu. |
| SYSLIB1205 | Typ zawiera już implementację metody "Validate". |
| SYSLIB1206 | Nie można zweryfikować prywatnych pól ani właściwości. |
| SYSLIB1207 | Typ członkowski nie jest wyliczalny. |
| SYSLIB1208 | Moduły sprawdzania poprawności używane do walidacji przechodniej lub wyliczalnej muszą mieć konstruktor bez parametrów. |
| SYSLIB1209 |
OptionsValidatorAttribute nie można zastosować do klasy statycznej. |
| SYSLIB1210 | Nie określono typu walidatora dla atrybutów ValidateObjectMembersAttribute lub ValidateEnumeratedItemsAttribute. |
| SYSLIB1211 | Nieobsługiwane odwołania cykliczne w typach modeli. |
| SYSLIB1212 | Członek może brakować weryfikacji transytywnej. |
| SYSLIB1213 | Członek może brakować walidacji wyliczalnej. |
| SYSLIB1214 | Nie można zweryfikować stałych, pól statycznych ani właściwości. |
| SYSLIB1215 | Atrybut walidacji członka jest niedostępny z typu walidatora. |
| SYSLIB1216 | Wersja języka C# nie jest obsługiwana przez generator źródeł weryfikacji opcji. |
| SYSLIB1217 | Atrybut weryfikacji ma zastosowanie tylko do właściwości typu ciąg, tablica lub ICollection; nie może być używany z innymi typami. |
| SYSLIB1218 | (Zarezerwowane dla Microsoft.Extensions.Options.SourceGeneration).) |
| SYSLIB1219 | (Zarezerwowane dla Microsoft.Extensions.Options.SourceGeneration).) |
| SYSLIB1220 | Obiekt JsonSourceGenerator napotkał element [JsonConverterAttribute] z nieprawidłowym argumentem typu. |
| SYSLIB1221 | JsonSourceGenerator nie obsługuje tej wersji języka C#. |
| SYSLIB1222 | Konstruktor z adnotacją JsonConstructorAttribute jest niedostępny. |
| SYSLIB1223 | Konstruktor z adnotacją JsonConstructorAttribute jest niedostępny. |
| SYSLIB1224 | Typy z adnotacjami z atrybutem JsonSerializableAttribute muszą być klasami pochodnymi z klasy JsonSerializerContext. |
| SYSLIB1225 | (Zarezerwowane dla System.Text.Json.SourceGeneration).) |
| SYSLIB1226 | (Zarezerwowane dla System.Text.Json.SourceGeneration).) |
| SYSLIB1227 | (Zarezerwowane dla System.Text.Json.SourceGeneration).) |
| SYSLIB1228 | (Zarezerwowane dla System.Text.Json.SourceGeneration).) |
| SYSLIB1229 | (Zarezerwowane dla System.Text.Json.SourceGeneration).) |
| SYSLIB1230 | Wyprowadzanie z atrybutowanego interfejsu GeneratedComInterface zdefiniowanego w innym zestawie nie jest obsługiwane. |
Pomijanie ostrzeżeń
Zaleca się użycie jednego z obejść, jeśli jest to możliwe. Jeśli jednak nie możesz zmienić kodu, możesz pominąć ostrzeżenie za pomocą #pragma dyrektywy lub <NoWarn> ustawienia projektu. Jeśli diagnostyka SYSLIB1XXX generatora źródłowego nie pojawia się jako błąd, możesz pominąć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć ostrzeżenia w kodzie (w razie potrzeby zastąp identyfikator diagnostyczny):
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Aby zignorować ostrzeżenia w pliku projektu (w razie potrzeby wymień identyfikatory diagnostyczne):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.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>