es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo resolver el problema de referencia de paquete en una biblioteca de NetStandard 2.0 utilizada por el Framework 4.8?

Tengo el temido ‘No se pudo cargar el archivo o ensamblado’ y esta vez se me acabaron las opciones para solucionarlo, espero que tú seas más listo.

Mi solución (simplificada) es esta:
– Winforms.exe, Framework 4.8. Esto hace referencia a:
– Client.dll, .Net Standard 2.0 que utiliza
– IdentityModel.OidcClient 5.0.0 que utiliza
– System.Text.Json

Dado que Client.dll no es .Net Core 5.0, agregué System.Text.Json como un paquete NuGet. Esto provoca la siguiente excepción al llamar a RefreshTokenAsync en OidcClient:

System.IO.FileLoadException: 'No se pudo cargar el archivo o ensamblado 'System.Text.Json, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' o una de sus dependencias. La definición del manifiesto del ensamblado localizado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040)'

He intentado algunas cosas pero ninguna ha funcionado hasta ahora:

  1. Agregué la versión más cercana a 5.0.0.2 de System.Text.Json que pude encontrar (5.0.0, 5.0.1) a Client.dll, el problema persiste.
  2. Agregué la última versión de 5.0.0.2 de System.Text.Json que pude encontrar (6.0.1) a Client.dll, el problema persiste.
  3. Agregué una redirección de paquetes a Winforms.exe (aunque Generate Auto Redirects = true):






Sin resultados

  1. Intenté agregar el NuGet (todas las versiones diferentes) a WinForms.exe, con o sin redirección. El problema persiste.

Ya no estoy seguro de cómo solucionarlo, ¿algún voluntario? Muchas gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema aquí es una incompatibilidad de versiones entre la asamblea System.Text.Json que se está utilizando y la versión requerida por IdentityModel.OidcClient. Aquí tienes algunas cosas que podrías intentar:

    1. Intenta bajar la versión del paquete IdentityModel.OidcClient a una versión compatible con la versión de System.Text.Json que tienes instalada en Client.dll (por ejemplo, 5.0.0 o 5.0.1).

    2. Verifica si hay otras dependencias en el proyecto que también estén haciendo referencia a System.Text.Json y asegúrate de que todas estén apuntando a la misma versión.

    3. Intenta usar el Visor de registros de fusión para diagnosticar el problema. Esta herramienta puede mostrarte cómo se resuelven las dependencias durante el proceso de enlace de ensamblados en tiempo de ejecución y podría brindar más información sobre lo que está causando el problema.

    4. Si todo lo demás falla, podrías intentar eliminar el paquete System.Text.Json de Client.dll y, en su lugar, agregarlo como una dependencia directa de Winforms.exe. Esto garantizará que se utilice una sola versión de la biblioteca en todo el proyecto.

Comments are closed.