我有一个方法SendEmail
,它从接口调用并抛出:System.MissingMethodException: 'Method not found: 'System.Threading.Tasks.Task Microsoft.Graph.IUserSendMailRequest.PostAsync()'.'
应用程序甚至不会在方法开始时命中断点。
异常中描述的方法是SendEmail
代码的一部分,SendEmail
代码位于ASP.NET Core应用程序(均为.NET 6.0)引用的类库项目中。如果我将SendEmail
代码复制粘贴到测试控制器中,它可以正常工作。
为什么从接口调用SendEmail
时代码不工作?我该怎么解决这个问题?
1条答案
按热度按时间yyhrrdl81#
问题似乎是包含
Microsoft.Graph.IUserSendMailRequest.PostAsync()
方法的库(Microsoft.Graph)之间的不匹配。包含SendEmail
的类库项目使用的是旧版本(3.35.0)。通常情况下,这不是问题,因为编译器会升级到ASP.NETCore项目中的较新版本(4.34.0)。然而,在这种情况下,运行时无法正常工作。这表明新版本与旧版本不向后兼容,尽管相同的代码可以同时编译这两个版本。基本上,
SendEmail
代码是用旧版本库编译的,并在运行时与新版本库链接。解决方案是在两个项目中使用相同版本的Microsoft.Graph。