أهلا،
باستخدام dotnet core 2.0 ، أثناء كتابة بعض الاختبارات التي تشير إلى مشروع يعتمد على nuget إلى:
AWSSDK.Extensions.NETCore.Setup (3.3.4) ،
تلقيت خطأ مفاده أنه لا يمكن العثور على تجميع Microsoft.Extensions.Logging.Abstractions v1.0 (callstack أدناه).
لقد ألقيت نظرة سريعة على الكود الخاص بك وفي رأيي (قد يكون خاطئًا) ، قد يكون هناك سطر مفقود في nuspec (آخر سطر تبعية):
<dependencies>
<group targetFramework="netstandard1.3">
<dependency id="AWSSDK.Core" version="[3.3.13.3, 3.4)" />
<dependency id="Microsoft.Extensions.Configuration.Abstractions" version="1.0.2" />
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.0.2" />
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="1.0.0" />
</group>
</dependencies>
بعد إضافة هذا السطر ، وإعادة إنشاء الحزمة يدويًا ، والكتابة فوق الإصدار الحالي وإعادة بناء المشروع ، يعمل الكود الخاص بي ببساطة.
هام : يعمل أيضًا إذا قمت بإضافة حزمة التسجيل يدويًا باستخدام الإصدار v1.0 إلى مشروعي ، دون تعديل aws-sdk-net على الإطلاق.
هام 2 : يعمل أيضًا إذا قمت بالرجوع إلى إصدار سابق:
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.3.1" />
بدلا من 3.3.4 هذا هو الحالي.
يجب ألا أحصل على خطأ يصف التجميع المفقود عند إجراء اختبار المشروع.
الحل الممكن أعلاه.
System.IO.FileNotFoundException: تعذر تحميل الملف أو التجميع 'Microsoft.Extensions.Logging.Abstractions ، الإصدار = 1.0.0.0 ، الثقافة = محايد ، PublicKeyToken = adb9793829ddae60'. لا يمكن للنظام العثور على الملف المحدد.
في Amazon.Extensions.NETCore.Setup.ClientFactory .CreateServiceClient (مزود IServiceProvider)
في Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory (FactoryCallSite factoryCallSite ، مزود ServiceProvider)
في Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor 2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2. قم بزيارة موقع (IServiceCallSite callSite ، وسيطة TArgument)
في Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor (ConstructorCallSite constructorCallSite ، ServiceProvider Provider)
في Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor 2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2. قم بزيارة موقع (IServiceCallSite callSite ، وسيطة TArgument)
في Microsoft.Extensions.DependencyInjection.ServiceProvider. <> c__DisplayClass22_0.
في Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService (اكتب نوع الخدمة)
في Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService T
الحل الممكن أعلاه.
طور لامدا التي تستخدم SQS وأثناء كتابة بعض الاختبارات حصلت على هذه المشكلة.
dotnet --info
:معلومات المنتج:
الإصدار: 2.1.4.1
قم بتنفيذ تجزئة SHA-1: 5e8add2190
بيئة التشغيل:
اسم نظام التشغيل: Windows
إصدار نظام التشغيل: 10.0.15063
نظام التشغيل: Windows
RID: win10-x64
المسار الأساسي: C: \ Program Files \ dotnet \ sdk \ 2.1.4 \
Microsoft .NET Core Shared Framework Host
الإصدار: 2.0.5
بناء: 17373eb129b3b05aa18ece963f8795d65ef8ea54
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<ItemGroup>
<None Remove="appSettings.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Amazon.Lambda.Core" Version="1.0.0" />
<PackageReference Include="Amazon.Lambda.Serialization.Json" Version="1.1.0" />
<PackageReference Include="Amazon.Lambda.KinesisEvents" Version="1.0.1" />
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.3.4" />
<PackageReference Include="AWSSDK.SQS" Version="3.3.3.4" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.0.1" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Amazon.Lambda.Tools" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="appSettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Bankrekt.Scheduler.Shared\Bankrekt.Scheduler.Shared.csproj" />
</ItemGroup>
</Project>
هذا على الأرجح لأن مشروعك يستهدف 2.0 ويسحب 2.0 من Microsoft.Extensions.Logging.Abstractions ، لكن NETCore.Setup يبحث عن 1.0 ثنائيات. سنلقي نظرة على هذا.
تمسك جيد حول المرجع المفقود. أنا أجري هذا التغيير وسأصدر تحديثًا قريبًا.
تم إصدار الإصدار 3.3.3.5 بفضل إعلامنا بالمشكلة.
أرى نوعًا مشابهًا من المشكلات مع dotnet core 3.0 أي دليل حول ذلك؟
أحصل أيضًا على نفس المشكلة عند الإنشاء لـ dotnet core 3.0
التعليق الأكثر فائدة
أرى نوعًا مشابهًا من المشكلات مع dotnet core 3.0 أي دليل حول ذلك؟