Compartir a través de


IL2125: El ensamblaje al que se hace referencia no está anotado para la compatibilidad de recorte

Causa

Un proyecto ha sido <VerifyReferenceTrimCompatibility>true</VerifyReferenceTrimCompatibility> establecido y uno o varios ensamblados a los que se hace referencia no tienen el atributo de metadatos del ensamblado IsTrimmable establecido en true.

Descripción de la regla

Al publicar una aplicación recortada mediante <PublishTrimmed>true</PublishTrimmed> o marcar el proyecto como recortable con <IsTrimmable>true</IsTrimmable>, puede habilitar opcionalmente la comprobación de que todos los ensamblados a los que se hace referencia también se anotan para la compatibilidad de recorte. Esto ayuda a garantizar que todas las dependencias de tu proyecto estén anotadas para la compatibilidad con el recorte.

Para habilitar esta comprobación, establezca la propiedad VerifyReferenceTrimCompatibility en el true archivo del proyecto:

<PropertyGroup>
  <PublishTrimmed>true</PublishTrimmed>
  <VerifyReferenceTrimCompatibility>true</VerifyReferenceTrimCompatibility>
</PropertyGroup>

Cuando esta propiedad está habilitada, el analizador comprueba que todos los ensamblados a los que se hace referencia se han compilado con <IsTrimmable>true</IsTrimmable>, que agrega el atributo [assembly: AssemblyMetadata("IsTrimmable", "True")] de nivel de ensamblado al ensamblado.

Example

// Assembly reference: MyLibrary.dll (built without <IsTrimmable>true</IsTrimmable>)

public class Program
{
    public static void Main()
    {
        var obj = new MyLibrary.SomeClass();
    }
}
warning IL2125: Referenced assembly 'MyLibrary' is not built with `<IsTrimmable>true</IsTrimmable>` and may not be compatible with trimming.

Cómo corregir infracciones

Tiene varias opciones para corregir esta advertencia:

  • Si controla el código fuente de la biblioteca, actualice la biblioteca a la que se hace referencia para que se construya con <IsTrimmable>true</IsTrimmable>. Para obtener instrucciones sobre cómo hacer que las bibliotecas sean compatibles con el recorte, consulte Preparación de bibliotecas de .NET para el recorte. Este es el enfoque preferido.
  • Si está seguro de que la biblioteca funciona correctamente con el recorte incluso sin el atributo , deshabilite la comprobación estableciendo<VerifyReferenceTrimCompatibility>false</VerifyReferenceTrimCompatibility> en el archivo del proyecto.

Consulte también