IL3002:当发布为单个文件时,避免调用使用“RequiresAssemblyFilesAttribute”注释的成员。

规则 ID 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”属性消息中概述的建议调整现有代码,则可禁止显示警告。