価値 | |
---|---|
ルール識別子 | IL3002 |
カテゴリ | シングルファイル |
修正プログラムが破壊的か非破壊的か | 非破壊的 |
原因
アプリを 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' 属性のメッセージに記載されている推奨事項に既存のコードが適合している場合は、警告を抑制することをお勧めします。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET