.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+
Надеюсь это работает.