Runtime: COREHOST_TRACE должен регистрировать AssemblyLoadContext

Созданный на 16 апр. 2019  ·  3Комментарии  ·  Источник: dotnet/runtime

Задний план
В Windows я интегрируюсь с глобальным инструментом .NET Core, который, в свою очередь, загружает сборки с помощью параметра командной строки assembly="c:\source\bin\Debug\netstandard2.0\JohnZabroski.Database.dll" . JohnZabroski.Database.dll транзитивно ссылается System.Data.SqlClient .

Проблема
С COREHOST_TRACE=1 мой текущий stderr выглядит так:

!!! 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)

Я нашел следующий пост в блоге довольно пугающим при попытке устранить неполадки, ПОЧЕМУ мою сборку не удалось найти или найти: https://mattwarren.org/2016/07/04/How-the-dotnet-CLI-tooling-runs-your .

Я обнаружил, что инструмент Assembly Fusion Log Viewer в .NET 4.6 НАМНОГО проще для пользователя. См.: https://github.com/dotnet/coreclr/issues/10379 .

Возможно, связано
https://github.com/dotnet/coreclr/issues/15863 — пользователи считают отладочную загрузку сборки в Linux ужасной (исправлено: https://github.com/dotnet/coreclr/pull/15831)

area-AssemblyLoader-coreclr enhancement

Самый полезный комментарий

Это абсолютно необходимо. Он находится в нашем списке невыполненных работ, но вряд ли он станет частью .NET Core 3.0.

Все 3 Комментарий

Начиная с @jeffschwMSFT. Пожалуйста, исправьте area- , если я ошибаюсь.

Это абсолютно необходимо. Он находится в нашем списке невыполненных работ, но вряд ли он станет частью .NET Core 3.0.

Это абсолютно необходимо. Он находится в нашем списке невыполненных работ, но вряд ли он станет частью .NET Core 3.0.

Если он "абсолютно нужен", то почему его не будет в Core 3.0? Поставлять новые и модные функции — это здорово, но сила Microsoft всегда заключалась в инструментах для отладки этих функций, когда они не работают. Устранение неполадок с привязкой сборки — важнейший инструмент, который должен быть встроен в Core с самого первого дня, и тот факт, что он не был и, по-видимому, до сих пор не рассматривается в качестве приоритета, одновременно беспокоит и, откровенно говоря, смущает.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

omariom picture omariom  ·  3Комментарии

chunseoklee picture chunseoklee  ·  3Комментарии

Timovzl picture Timovzl  ·  3Комментарии

omajid picture omajid  ·  3Комментарии

sahithreddyk picture sahithreddyk  ·  3Комментарии