PostgresSQL 및 Entity 프레임 워크를 사용하여 WebAPI로 ASP.NET 4.5를 구성하려고합니다. Postgres 드라이버 Npgsql의 두 가지 빌드가 있음을 발견했습니다. 버전 2.0.12.0은 EF 5.0.0.0을 지원합니다. EF 6.0.0.0을 지원하는 별도의 빌드 (2.0.13.91로 잘못 표시된 문서에 따른)가 있습니다. 나는 내가 제대로 작동하도록 하나를 얻을 수있는 한 내가 사용하는 버전을 신경 쓰지 않는다. EF 6.0.0.0을 사용하려고 할 때 오류가 발생하고 현재 5.0.0.0이 작동하려고합니다. 6.0.0.0의 오류는 별도의 문제이므로 필요한 경우 별도로 게시 할 예정입니다.EntityFramework 6.0.0.0 5.0.0.0 되돌리기
문제는 이미 EF 6.0.0.0을 한 번에 설치했기 때문에 EF 5.0.0.0으로 완전히 다운 그레이드 할 수 없다는 것이 문제입니다. 내가 찾을 수있는 모든 참조를 복귀하고 난 단지 EF 5.0.0.0이 설치되어있는,하지만 난 웹 API 응용 프로그램을 배포하거나 Npgsql 드라이버를 사용하는 코드를 실행하려고 할 때 내가 얻을 :
A first chance exception of type 'System.IO.FileLoadException' occurred in System.Data.Entity.dll
A first chance exception of type 'System.IO.FileLoadException' occurred in EntityFramework.dll
iisexpress.exe Error: 0 : Operation=ReflectedHttpActionDescriptor.ExecuteAsync, Exception=System.IO.FileLoadException: Could not load file or assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at Npgsql.NpgsqlFactory.GetService(Type serviceType)
at System.Data.Common.DbProviderServices.GetProviderServices(DbProviderFactory factory)
I 돈 6.0.0.0의 사양이 어디에서 왔는지 알 수 없습니다. web.config
에서 모든 버전 사양을 업데이트했습니다. 5.0.0.0을 제거하고 다시 설치했습니다. 심지어 MVC4 용 Visual Studio 업데이트 패키지를 제거하고 다시 설치했습니다. Nuget에 나열된 EntityFramework 패키지는 5.0.0.0입니다. 패키지의 참조 된 어셈블리는 모두 EF 5.0.0.0을 지정합니다. Npgsql을 다시 작성하고 Npgsql.dll
및 Mono.Security.dll
을 gacutil.exe
으로 등록했습니다. 무엇이 6.0.0.0을 가리키며 어떻게 되돌릴 수 있습니까?
TL; DR
찾아낸 조립체 5.0.0.0이며 정확하다. 어떤 이유로 6.0.0.0을 찾고 있는데 그 이유를 알 수 없습니다.
감사합니다. 불행히도 더 이상 구성을 사용하지 않고 더 이상 문제가 발생하지 않아 테스트 할 수 없으며 이전 구성을 되돌리고 테스트 할 시간이 없습니다. 나는 당신이 정확하고 다운 그레이드가 완전한 정리를 수행하지 않거나 PostGre 드라이버에서 오류/비 호환성이 될 수 있다고 생각합니다. 좋은 발견! 나는 이것이 매우 드문 경우라고 생각했다. 다행스럽게도 이것은 어느 시점에 박스에서 풀려나 간다. – taz
또한 .NET의'machine.config'에는'web.config'와 같은 방식으로 작동하는 유사한 "provider"섹션과 비슷한 것들이 포함되어 있지 않으며 런타임의 상위 범위에서 적용됩니까? 누락 된 제공자 섹션이 이전 5.0.0.0 설치에서'machine.config' (또는 다른 유사한 처리 된 configs/파일이있는 경우)에 실제로 존재하는지 확인하는 것이 좋습니다. – taz