Runtime: يجب على COREHOST_TRACE تسجيل AssemblyLoadContext

تم إنشاؤها على ١٦ أبريل ٢٠١٩  ·  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 التقييمات