Microsoft Bot Framework:更新 Microsoft.Bot.Connector 时出现 MissingMethodException

Microsoft Bot Framework: MissingMethodException when Microsoft.Bot.Connector is updated

我想将主动学习添加到我的聊天机器人中,这需要 Microsoft.Bot.Builder.AI.QnA 4.3.2 及更高版本。目前我的机器人对任何 Microsoft.Bot.Builder 或 Microsoft.Bot.Connector 包使用版本 4.2.2。要更新 Microsoft.Bot.Builder.AI.QnA,我还需要将我的 Microsoft.Bot.Builder 和 Microsoft.Bot.Connector 包更新到 >= 4.3.2。当我将 Microsoft.Bot.Connector 更新到大于 4.2.2 的任何版本时,当我尝试 运行 Bot Framework Emulator 中的聊天机器人时,我在 VS 输出 window 中收到以下错误。

Microsoft.AspNetCore.Hosting.Internal.WebHost:Critical: Application startup exception

System.MissingMethodException: Method not found: 'Void Microsoft.Bot.Connector.OAuthClient.set_EmulateOAuthCards(Boolean)'.
at Microsoft.Bot.Builder.Integration.AspNet.Core.ApplicationBuilderExtensions.UseBotFramework(IApplicationBuilder applicationBuilder)
at CBot.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in C:\Users\X\Desktop\CBot\Startup.cs:line 136
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)
at Microsoft.AspNetCore.Server.IISIntegration.IISSetupFilter.<>c__DisplayClass4_0.<Configure>b__0(IApplicationBuilder app)
at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

我相信当我调用 .UseBotFramework() 时发生了异常:

    129   public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    130   {
    131    _loggerFactory = loggerFactory;
    132
    133    app.UseDefaultFiles()
    134        .UseStaticFiles()
    135        .UseBotFramework();
    136   }

我在 Microsoft.Bot.Connector documentation 看到过 现在是 OAuthClientOld class 以及 OAuthClient class。 OAuthClientOld class 有 EmulateOAuthCards 属性 但 OAuthClient class 没有,所以也许这在 Microsoft.Bot.Connector 4.2.2 之后发生了变化。我不确定如何解决此问题,但考虑到我不直接调用 OAuthClient。有人对此有解决办法吗?

确保所有你的 Bot 包都升级到 4.3.2。

Any/all 以下的:

Microsoft.Bot.Builder.Dialogs                   {4.3.2}         
Microsoft.Bot.Connector                         {4.3.2}         
Microsoft.Bot.Schema                            {4.3.2}         
Microsoft.Bot.Configuration                     {4.3.2}         
Microsoft.Bot.Builder                           {4.3.2}         
Microsoft.Bot.Builder.Integration.AspNet.Core   {4.3.2}    
Microsoft.Bot.Builder.Ai.QnA                    {4.3.2}