.NET Core WEB API System.Core.dll Совпадение ссылок

Я новичок в.NET Core и пытаюсь написать веб-сервис, используя.NET Core Web API в проекте. Другие подпроекты написаны на.NET Framework 4.5. Есть проект для слоя Repository. Мне нужно получить все записи, используя репозиторий в проекте.NET Core Web API. Я добавил ссылку на проект репозитория в проект.Net Core Web API. Итак, для внедрения зависимости; в Startup.cs ConfigureService седьмой я добавил следующее;

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();
    services.AddSingleton(typeof(IRepository<>), typeof(RepositoryBase<>));
}

Я попытался перечислить все записи с помощью следующего метода в связанном контроллере;

[HttpGet]
[Route("Book/GetAll")]
public IActionResult GetAllRecords()
{
    return Ok(_bookRepository.GetAll());
}

Когда я вызываю это действие через веб-браузер, я получаю следующее сообщение об ошибке;

>  System.IO.FileLoadException: Could not load file or assembly
> 'System.Core, Version=4.0.0.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089'. The located assembly's manifest
> definition does not match the assembly reference. (Exception from
> HRESULT: 0x80131040)   File name: 'System.Core, Version=4.0.0.0,
> Culture=neutral, PublicKeyToken=b77a5c561934e089'
>      at BookApi.Startup.ConfigureServices(IServiceCollection services)   --- End of stack trace from previous location where
> exception was thrown ---
>      at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
>      at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection
> services)
>      at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
>      at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

Не могли бы вы помочь мне о том, что это значит? Я проверил GAC DLL с помощью следующей команды;

  C:\Windows\System32>gacutil /l | find /i "system.core"

>   System.Core, Version=3.5.0.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL  
> System.Core.resources, Version=3.5.0.0, Culture=tr,
> PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL  
> System.Core, Version=4.0.0.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL  
> System.Core.resources, Version=4.0.0.0, Culture=tr,
> PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL

Похоже, существует System.Core.dll с версией 4.0.0.0. Я использую Visual Studio 2017 версии 15.2. Кроме того, я не уверен, что файл appsettings.json содержит необходимые объявления. Не могли бы вы также объяснить формат appsettings.json?

Спасибо за ответы..

1 ответ

Я предлагаю вам проверить несколько моментов.

  • Файл appsettings.json не будет иметь такой декларации. Вам нужно будет проверить свой файл.csproj.
  • Почему бы вам не упростить DI, добавив services.AddSingleton();
  • Проверьте все ваши зависимости и найдите, какие из них используют зависимость System.core, и обновите их, следуя приведенной ниже рекомендации.
  • Обновите каждую зависимость вашего проекта как минимум до версии 1.1.4+

Надеюсь это работает.

Другие вопросы по тегам