Compartilhar via


IL3002: Evite chamar membros anotados com 'RequiresAssemblyFilesAttribute' ao publicar como um único arquivo

Valor
ID da regra IL3002
Categoria Arquivo Único
Correção está falhando ou não interrompendo Não interruptiva

Motivo

Quando você publica um aplicativo como um único arquivo (por exemplo, definindo a propriedade PublishSingleFiletrue em um projeto), chamar membros anotados com o atributo RequiresAssemblyFilesAttribute não é compatível com a publicação como um único arquivo. Essas chamadas não são compatíveis porque os membros anotados com esse atributo exigem que os arquivos de assembly estejam em disco, e os assemblies embutidos em um aplicativo de arquivo único são carregados na memória.

Exemplo:

[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();
}

Como corrigir violações

Os membros anotados com o atributo 'RequiresAssemblyFilesAttribute' têm uma mensagem destinada a fornecer informações úteis aos usuários que estão publicando como um único arquivo. Considere adaptar o código existente à mensagem do atributo ou remover a chamada de violação.

Quando suprimir avisos

É apropriado suprimir o aviso quando o código existente tiver sido adaptado à recomendação descrita na mensagem do atributo 'RequiresAssemblyFilesAttribute'.