Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

611
Vistas
Conflicto de versión entre System.Text.Json y System.Runtime.CompilerServices.Unsafe al usar JsonSerializer

Nuestra aplicación C# usa .Net Framework 4.7.2 y estamos tratando de implementar JsonSerializer en System.Text.Json. Podemos construir la solución sin ningún problema, pero cuando intentamos ejecutar la aplicación, obtenemos el siguiente error

Error al resolver: System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Excepción detectada durante la ejecución: Main System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado 'System.Runtime.CompilerServices.Unsafe , Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' o una de sus dependencias. La definición del manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040) Nombre de archivo: 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' en System.Span`1..ctor(T[] array) en System .Text.Json.JsonSerializer.Deserialize[TValue](String json, Type returnType, JsonSerializerOptions options) en Project.Class1.Main(String[] args) en D:\Project\Class1.cs:line 36

Mirando la versión de System.Rutime.CompilerServices.Unsafe que está instalada en NuGet, es 5.0.0 y dentro de nuestro archivo app.config, tenemos lo siguiente:

 <?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>

Ahora, dado que 4.0.4.1 está dentro del rango de la versión anterior, asumiría que debería redirigir a 5.0.0.0 en lugar de buscar 4.0.4.1, pero debo estar equivocado. También traté de cambiar la versión anterior a "4.0.4.1", pero eso no ayudó.

Si trato de cambiar la versión de System.Runtime.CompilerServices.Unsafe a la versión del paquete 4.5.3, que corresponde a la versión 4.0.4.1, entonces System.Text.Json debe degradarse de 5.0.2 a 2.0.0.11. Esta versión no contiene JsonSerializer, por lo que no funcionará con nuestra aplicación.

¿Hay alguna forma en que podamos redirigir con éxito de buscar la versión anterior (4.0.4.1) a buscar la última versión que está instalada (5.0.0.0)? Cualquier comentario o sugerencia es apreciada!

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda