Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

615
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!