Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если проект .NET 6+ ссылается на пакет, который позволяет генерацию исходного кода, например, решение для ведения журнала, то анализаторы, относящиеся к генерации исходного кода, будут выполняться во время компиляции. В этой статье приводятся диагностические сведения компилятора, связанные со сгенерированным исходным кодом.
Если вы сталкиваетесь с одним из этих предупреждений или ошибок при сборке, следуйте конкретным указаниям, приведенным для идентификатора диагностики в разделе Справочник. Вы также можете отключить предупреждения с помощью определенного SYSLIB1XXX значения идентификатора диагностики. Дополнительные сведения см. в разделе Подавление предупреждений.
Предупреждения анализатора
Значения идентификатора диагностики, зарезервированные для предупреждений анализатора сгенерированного исходного кода, находятся в диапазоне от SYSLIB1001 до SYSLIB1999.
Справочные материалы
В следующей таблице представлен индекс диагностики SYSLIB1XXX в .NET 6 и более поздних версиях.
| Идентификатор диагностики | Описание |
|---|---|
| SYSLIB1001 | Имена методов ведения журнала не могут начинаться с _ |
| SYSLIB1002 | Не включайте параметры уровня ведения журнала в шаблоны сообщений журнала. |
| SYSLIB1003 | InvalidLoggingMethodParameterNameTitle |
| SYSLIB1004 | Класс логирования не может находиться в вложенных типах. |
| SYSLIB1005 | Не удалось найти требуемое определение типа |
| SYSLIB1006 | Несколько методов ведения журнала не могут использовать один и тот же идентификатор события в классе |
| SYSLIB1007 | Методы логирования должны возвращать void |
| SYSLIB1008 | Один из аргументов метода ведения журнала должен реализовывать интерфейс Microsoft.Extensions.Logging.ILogger |
| SYSLIB1009 | Методы ведения журнала должны иметь значение static |
| SYSLIB1010 | Методы ведения журнала должны иметь значение partial |
| SYSLIB1011 | Методы логирования не могут использовать allows ref struct ограничение |
| SYSLIB1012 | Избыточный квалификатор в сообщении логирования |
| SYSLIB1013 | Не используйте параметры исключения в виде шаблонов в сообщении журнала |
| SYSLIB1014 | Шаблон ведения журнала не имеет соответствующего аргумента метода |
| SYSLIB1015 | В сообщении журнала отсутствует ссылка на аргумент |
| SYSLIB1016 | Методы ведения журнала не могут содержать тело |
| SYSLIB1017 | Значение LogLevel должно быть указано в атрибуте LoggerMessage или указано в качестве параметра для метода ведения журнала |
| SYSLIB1018 | Не включайте параметры логгера как шаблоны в сообщение лога |
| SYSLIB1019 | Не удалось найти поле типа Microsoft.Extensions.Logging.ILogger |
| SYSLIB1020 | Найдено несколько полей типа Microsoft.Extensions.Logging.ILogger |
| SYSLIB1021 | Несколько имен элементов шаблона сообщения отличаются только регистром |
| SYSLIB1022 | Нельзя использовать строки неправильного формата (например, с лишними фигурными скобками) |
| SYSLIB1023 | Создание более шести аргументов не поддерживается |
| SYSLIB1024 | Аргумент метода ведения журнала использует модификатор неподдерживаемых out параметров |
| SYSLIB1025 | Несколько методов ведения журнала не могут использовать одно и то же имя события в классе |
| SYSLIB1026 | Версия языка C# не поддерживается генератором источника ведения журнала. |
| SYSLIB1027 | Основной параметр конструктора типа Microsoft.Extensions.Logging.ILogger скрыт полем |
| SYSLIB1028 | Аргумент метода ведения журнала использует неподдерживаемый params или scoped модификатор параметров |
| SYSLIB1029 | Параметр метода ведения журнала — это ref struct |
| 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 обнаружил тип со свойствами только для инициализации, для которых не поддерживается десериализация |
| SYSLIB1038 | Генератор исходного кода System.Text.Json обнаружил свойство, аннотированное с помощью [JsonInclude], у которого есть недоступные аксессоры. |
| SYSLIB1039 | JsonSourceGenerator обнаружил аннотацию с включенным JsonSourceGenerationMode.Serialization |
| SYSLIB1040 | Недопустимое GeneratedRegexAttribute использование. |
| SYSLIB1041 | К одному методу применено несколько GeneratedRegexAttribute атрибутов, но разрешено только одно. |
| 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/invokes, генерируемыми исходным кодом. |
| SYSLIB1052 | Указанная конфигурация не поддерживается сгенерированными исходным кодом p/invokes. |
| SYSLIB1053 | Указанные LibraryImportAttribute аргументы нельзя перенаправить в DllImportAttribute. |
| SYSLIB1054 | Используйте LibraryImportAttribute вместо DllImportAttribute для генерации кода маршаллинга 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 | Используйте GeneratedComInterfaceAttribute вместо ComImportAttribute для генерации кода маршаллинга COM во время компиляции. |
| SYSLIB1097 | Этот тип реализует по крайней мере один тип с атрибутом GeneratedComInterfaceAttribute . Добавьте GeneratedComClassAttribute, чтобы разрешить передачу этого типа в COM и обеспечивать доступ к COM-интерфейсам для типов с GeneratedComInterfaceAttribute из объектов этого типа. |
| SYSLIB1098 | .NET COM-хостинг с EnableComHosting поддерживает только встроенное COM-взаимодействие. Он не поддерживает взаимодействие COM с автоматически генерируемым источником GeneratedComInterfaceAttribute. |
| SYSLIB1099 | API взаимодействия с COM на System.Runtime.InteropServices.Marshal не поддерживают автогенерируемые COM и вызовут ошибку во время выполнения. |
| SYSLIB1100 | Генератор привязки конфигурации: тип не поддерживается. |
| SYSLIB1101 | Генератор привязки конфигурации: свойство типа не поддерживается. |
| SYSLIB1102 | Генератор привязки конфигурации: языковая версия проекта должна иметь по крайней мере C# 12. |
| SYSLIB1103 | Генератор привязки конфигурации: типы значений являются недопустимыми входными данными для методов конфигурации Bind. |
| SYSLIB1104 | Генератор привязки конфигурации: генератор не может определить тип целевой конфигурации. |
| SYSLIB1105 | (Зарезервировано для Microsoft.Extensions.Configuration.Binder.SourceGeneration.) |
| SYSLIB1106 | (Зарезервировано для Microsoft.Extensions.Configuration.Binder.SourceGeneration.)(Зарезервировано для 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 | Тип проверяющего элемента NULL указан для атрибутов ValidateObjectMembersAttribute или ValidateEnumeratedItemsAttribute. |
| 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.) |
| SYSLIB1230 | Производный от интерфейса-атрибута, определенного GeneratedComInterfaceв другой сборке, не поддерживается. |
Отключение предупреждений
Рекомендуется по возможности использовать одно из обходных решений. Однако если вы не можете изменить код, вы можете отключить предупреждение с помощью #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>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>