SYSLIB0018: O carregamento somente de reflexão não tem suporte e gera PlatformNotSupportedException
Os métodos a seguir são marcados como obsoletos, começando no .NET 6. Chamá-los no código gera aviso SYSLIB0018
em tempo de compilação. Esses métodos geram um PlatformNotSupportedException em tempo de execução.
- Assembly.ReflectionOnlyLoad
- Assembly.ReflectionOnlyLoadFrom(String)
- Type.ReflectionOnlyGetType(String, Boolean, Boolean)
Soluções Alternativas
O carregamento somente de reflexão é substituído pelo contexto de carregamento de metadados no .NET Core e no .NET 5+. Para mais informações, confira Como inspecionar o conteúdo do assembly usando MetadataLoadContext.
Suprimir um aviso
Se for necessário usar as APIs obsoletas, você poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir apenas uma violação única, adicione as diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite o aviso.
// Disable the warning.
#pragma warning disable SYSLIB0018
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0018
Para suprimir todos os avisos SYSLIB0018
no projeto, adicione uma propriedade <NoWarn>
ao arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0018</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, confira Suprimir avisos.