IL3002: 1 つのファイルとして発行するときに 'RequiresAssemblyFilesAttribute' で注釈が付けられるメンバーを呼び出しません。

ルール ID IL3002
カテゴリ SingleFile
修正が破壊的か非破壊的か 非破壊的

原因

アプリを 1 つのファイルとして発行する場合 (たとえば、プロジェクトで 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' 属性で注釈が付けられたメンバーには、1 つのファイルとして発行しているユーザーに有用な情報を提供することを目的としたメッセージが含まれています。 既存のコードを属性のメッセージに適合させるか、違反している呼び出しを削除することを検討してください。

どのようなときに警告を抑制するか

既存のコードが 'RequiresAssemblyFilesAttribute' 属性のメッセージに記載されている推奨事項に適合している場合は、警告を抑制することをお勧めします。