Saltar al contenido

No se pudo cargar el archivo o ensamblado System.Runtime.CompilerServices.Unsafe

Solución:

No se pudo cargar el archivo o ensamblado System.Runtime.CompilerServices.Unsafe

Parece que ha instalado el paquete Nuget System.Runtime.CompilerServices.Unsafe 4.5.3 versión. Y corresponde a System.Runtime.CompilerServices.Unsafe.dll versión de montaje 4.0.4.1.

Sugerencia

1) Intente registrarse System.Runtime.CompilerServices.Unsafe versión 4.0.4.1 en GAC para que el sistema pueda hacerlo.

  • Correr Símbolo del sistema para desarrolladores para VS2019 como Administrador

  • escribe:

    cd xxxxx (the path of the the System.Runtime.CompilerServices.Unsafe 4.0.4.1)
    
    gacutil /i System.Runtime.CompilerServices.Unsafe.dll
    

2) Si usa proyectos de Net Framework con xxx.config archivo, puede utilizar bindingRedirect.

Agregue estos en app.config archivo o web.config expediente:

<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-4.0.4.1"  
                             newVersion="4.0.4.1"/>  
         </dependentAssembly>  
      </assemblyBinding>  
   </runtime>  
</configuration> 

además, si actualizas System.Runtime.CompilerServices.Unsafe nuget versión del paquete a la versión más reciente, también debe cambiar la versión del ensamblado bindingRedirect.

Puede consultar estas versiones de ensamblaje de System.Runtime.CompilerServices.Unsafe

4.5.x es System.Runtime.CompilerServices.Unsafe versión del paquete nuget mientras 4.0.x.x es System.Runtime.CompilerServices.Unsafe.dll versión de montaje.

4.5.0 is 4.0.4.0 
4.5.1 is 4.0.4.0 
4.5.2 is 4.0.4.0 
4.5.3 is 4.0.4.1
4.6.0 is 4.0.5.0
4.7.0 is 4.0.6.0
4.7.1 is 4.0.6.1

Supongo que está utilizando .NET Framework. Este error es conocido por ServiceStack.Redis y se rastrea en GitHub. Ocurre porque usa bibliotecas que dependen de diferentes versiones de System.Runtime.CompilerServices.Unsafe. Estas dependencias transitivas deben resolverse y consolidarse para terminar con un ensamblado en su carpeta de salida. Terminará con la última de estas versiones. En consecuencia, si una de las bibliotecas depende de una versión específica que sea más antigua, no se encontrará.

El error que causa este problema se solucionó en System.Runtime.CompilerServices.Unsafe 4.6.0. Utilice redirecciones de enlace para cargar la versión específica del ensamblado que necesita. Inserte este fragmento en todos sus app.config archivos.

<dependentAssembly>
    <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>

Necesita especificar el montaje versión del ensamblaje que necesita como newVersion. Esto no es lo mismo que el paquete versión que elija al instalar su paquete NuGet. Se corresponden así:

  • El paquete 4.5.3 contiene la versión de ensamblado es 4.0.4.1
  • El paquete 4.7.0 contiene la versión de ensamblado 4.0.6.0

En esta redirección de enlace, uso la versión más nueva de System.Runtime.CompilerServices.Unsafe que corrige el error. Sin embargo, si depende de la versión anterior, use 4.0.4.1.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *