Runtime: COREHOST_TRACE harus mencatat AssemblyLoadContext

Dibuat pada 16 Apr 2019  ·  3Komentar  ·  Sumber: dotnet/runtime

Latar belakang
Di Windows, saya mengintegrasikan dengan alat global .NET Core yang pada gilirannya memuat rakitan melalui parameter baris perintah assembly="c:\source\bin\Debug\netstandard2.0\JohnZabroski.Database.dll" . JohnZabroski.Database.dll referensi transitif System.Data.SqlClient .

Masalah
Dengan COREHOST_TRACE=1 , stderr saya saat ini terlihat seperti ini:

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

Saya menemukan posting blog berikut agak mengintimidasi ketika mencoba memecahkan masalah MENGAPA perakitan saya tidak dapat ditemukan atau ditemukan: https://mattwarren.org/2016/07/04/How-the-dotnet-CLI-tooling-runs-your -kode/

Saya telah menemukan alat Majelis Fusion Log Viewer di .NET 4.6 menjadi pengalaman pengguna yang BANYAK lebih mudah. Lihat: https://github.com/dotnet/coreclr/issues/10379

Mungkin terkait
https://github.com/dotnet/coreclr/issues/15863 - pengguna menemukan debugging perakitan memuat di Linux menjadi mengerikan (diperbaiki: https://github.com/dotnet/coreclr/pull/15831)

area-AssemblyLoader-coreclr enhancement

Komentar yang paling membantu

Ini mutlak diperlukan. Itu ada di backlog kami, tetapi sepertinya tidak akan membuat .NET Core 3.0.

Semua 3 komentar

Dimulai dengan @jeffschwMSFT. Tolong perbaiki area- jika saya salah.

Ini mutlak diperlukan. Itu ada di backlog kami, tetapi sepertinya tidak akan membuat .NET Core 3.0.

Ini mutlak diperlukan. Itu ada di backlog kami, tetapi sepertinya tidak akan membuat .NET Core 3.0.

Jika "benar-benar dibutuhkan", mengapa tidak ada di Core 3.0? Mengirimkan fitur baru dan mewah memang hebat, tetapi kekuatan Microsoft selalu ada pada alat untuk men-debug fitur tersebut saat tidak berfungsi. Pemecahan masalah kegagalan pengikatan perakitan adalah alat penting yang harus dibangun ke dalam Core sejak hari pertama, dan fakta bahwa itu tidak dan tampaknya masih tidak dilihat sebagai prioritas adalah mengkhawatirkan dan, sejujurnya, memalukan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat