IL3002: избегать вызова элементов с пометкой "RequiresAssemblyFilesAttribute" при публикации в одном файле.

Значение
Идентификатор правила IL3002
Категория SingleFile
Исправление является критическим или неразрывным Некритическое

Причина

При публикации приложения в виде одного файла (например, путем задания PublishSingleFile свойства true в проекте), вызывая элементы, аннотированные с RequiresAssemblyFilesAttribute атрибутом, несовместимы с одним файлом. Эти вызовы несовместимы, так как элементы, аннотированные с этим атрибутом, требуют, чтобы файлы сборок были на диске, а сборки, внедренные в однофайловое приложение, загружаются в память.

Пример:

[RequiresAssemblyFiles(Message="Use 'MethodFriendlyToSingleFile' instead", Url="http://help/assemblyfiles")]
void MethodWithAssemblyFilesUsage()
{
}
void TestMethod()
{
    // IL3002: Using member 'MethodWithAssemblyFilesUsage' which has 'RequiresAssemblyFilesAttribute'
    // can break functionality when embedded in a single-file app. Use 'MethodFriendlyToSingleFile' instead. http://help/assemblyfiles
    MethodWithAssemblyFilesUsage();
}

Устранение нарушений

Элементы, помеченные атрибутом "RequiresAssemblyFilesAttribute" включают сообщение, которое должно предоставить пользователям полезные сведения при публикации в виде одного файла. Попробуйте привести текущий код в соответствие с сообщением атрибута или удалить нарушающий вызов.

Когда лучше отключить предупреждения

Скрытие предупреждения оправдано, если текущий код был приведен в соответствие с рекомендацией из сообщения атрибута "RequiresAssemblyFilesAttribute".