Runtime: COREHOST_TRACE debe registrar AssemblyLoadContext

Creado en 16 abr. 2019  ·  3Comentarios  ·  Fuente: dotnet/runtime

Antecedentes
En Windows, me estoy integrando con una herramienta global de .NET Core que, a su vez, carga ensamblajes a través del parámetro de línea de comandos assembly="c:\source\bin\Debug\netstandard2.0\JohnZabroski.Database.dll" . JohnZabroski.Database.dll hace referencia transitivamente a System.Data.SqlClient .

Problema
Con COREHOST_TRACE=1 , mi stderr actual se ve así:

!!! Could not load file or assembly 'System.Data.SqlClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621)
!!! +- Could not load file or assembly 'System.Data.SqlClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileLoadException: Could not load file or assembly 'System.Data.SqlClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621) ---> System.IO.FileLoadException: Could not load file or assembly 'System.Data.SqlClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
   at System.AppDomain.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)

Descubrí que la siguiente publicación de blog es bastante intimidante al tratar de solucionar el POR QUÉ no se pudo encontrar o ubicar mi ensamblaje: https://mattwarren.org/2016/07/04/How-the-dotnet-CLI-tooling-runs-your -código/

Descubrí que la herramienta Assembly Fusion Log Viewer en .NET 4.6 es una experiencia de usuario MUCHO más fácil. Ver: https://github.com/dotnet/coreclr/issues/10379

posiblemente relacionado
https://github.com/dotnet/coreclr/issues/15863 : los usuarios consideran que la carga del ensamblaje de depuración en Linux es horrible (corregido: https://github.com/dotnet/coreclr/pull/15831)

area-AssemblyLoader-coreclr enhancement

Comentario más útil

Esto es absolutamente necesario. Está en nuestra cartera de pedidos, pero no es probable que haga .NET Core 3.0.

Todos 3 comentarios

Comenzando con @jeffschwMSFT. Corrija area- si me equivoco.

Esto es absolutamente necesario. Está en nuestra cartera de pedidos, pero no es probable que haga .NET Core 3.0.

Esto es absolutamente necesario. Está en nuestra cartera de pedidos, pero no es probable que haga .NET Core 3.0.

Si es "absolutamente necesario", ¿por qué no estará en Core 3.0? Enviar funciones nuevas y sofisticadas es excelente, pero la fuerza de Microsoft siempre ha estado en las herramientas para depurar esas funciones cuando no funcionan. La resolución de problemas de fallas de enlace de ensamblado es una herramienta crítica que debe integrarse en Core desde el primer día, y el hecho de que no lo fue y aparentemente todavía no se vea como una prioridad es preocupante y, francamente, vergonzoso.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

omajid picture omajid  ·  3Comentarios

yahorsi picture yahorsi  ·  3Comentarios

aggieben picture aggieben  ·  3Comentarios

bencz picture bencz  ·  3Comentarios

ilmax picture ilmax  ·  3Comentarios