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
.