를 사용하는 동안 :MissingMethodException이 나는 다음과 같은 예외를 받고 있어요 net46 프레임 워크를 사용하여 .NET 코어 1.0로 업그레이드 한 후 말끔
System.MissingMethodException was unhandled by user code
HResult=-2146233069
Message=Method not found: 'System.Collections.Generic.IEnumerable`1<!!0> GridReader.Read(Boolean)'.
Source=Sdm.Web
StackTrace:
at Sdm.Web.SqlAccess.SqlMgr.GetNumbersForMainScreen(TenantId tenantId)
at Sdm.Web.Test.TestDrivers.SqlMgrTestDriver.TestGetNumbersForMainScreen() in ...\Unittest\SqlMgrTestDriver.cs:line 37
InnerException: (null)
그것은 런타임에 발생하는 단지 방법을 입력 시도하기 전에 다음의 코드 라인을 포함 호출 GetNumbersForMainScreen :
using (SqlMapper.GridReader result = connection.QueryMultiple(SqlGetNumbersForMainScreen, new { recent = recent, tid = tenantId.Id }))
{
var val = new NumbersForMain()
{
AlarmsCriticalCount = result.Read<int>().Single(),
AlarmsNoncriticalCount = result.Read<int>().Single(),
RoomsCount = result.Read<int>().Single(),
UnitsOnlineCount = result.Read<int>().Single(),
UnitsCount = result.Read<int>().Single(),
};
val.UnitsOfflineCount = val.UnitsCount - val.UnitsOnlineCount;
return val;
}
여기서 변수 연결 유형 IDbConnection을이며 QueryMultiple은 말끔 v1.50.2.0에서 확장 방법.
나는 이것에 대해 아주 당황 스럽다. 코드는 잘 컴파일되지만 런타임에는 메소드가 존재하지 않는다고 들었습니다.
기본 종속성 버전의 불일치와 관련된 문제라고 생각합니다. Java에서 Maven 또는 유사한 도구를 사용하여 종속성 트리에서 버전 충돌을 찾는 일부 종속성 분석을 실행 하겠지만 .NET에서 이러한 종류의 문제를 해결하는 방법을 알지 못합니다.
이 문제의 원인에 대한 제안이나 이러한 종류의 문제를 해결할 수있는 방법에 대한 의견을 보내 주시면 감사하겠습니다.
편집 2016년 8월 25일는 : 내 project.json은 다음과 같습니다
{
"userSecretsId": "XXX",
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"dependencies": {
"Dapper": "1.50.2",
"Dapper-Async": "1.3.0",
"EntityFramework": "6.1.3",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0",
"Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.Elm": "0.1.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.Extensions.Caching.Abstractions": "1.0.0",
"Microsoft.Extensions.Caching.Memory": "1.0.0",
"Newtonsoft.Json": "9.0.1",
"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0",
"Microsoft.AspNetCore.Authorization": "1.0.0",
"Microsoft.Azure.Devices": "1.0.5",
"Microsoft.AspNetCore.HttpOverrides": "1.0.0",
"EFAttributeConfig": "1.0.0",
"Twilio": "4.5.0",
"Sendgrid": "6.3.4",
"Microsoft.AspNetCore.Routing": "1.0.0",
"Microsoft.AspNetCore.Hosting": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"log4net": "2.0.5"
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"net46": { }
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"log4net.xml"
],
"exclude": [
"**.user",
"**.vspscc"
]
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
project.json을 게시 할 수 있습니까? – svick
위 코드를 다시 작성하여 QueryMultiple을 피하고 이제는 작동합니다. .NET Core에서 종속성 충돌 문제를 해결하는 방법은 아직 궁금합니다. –
내 project.json이 질문에 추가되었습니다. –