Поделиться через


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", необходимо отключить предупреждение.