1

当我将以下代码同步到我的 Git 项目并在我的 Azure Bot 实例通道上对其进行测试时,我的以下代码运行良好:

[LuisIntent("Greeting")]
public async Task Greeting(IDialogContext context, LuisResult result)
{
    string s = string.Empty;
    string name = string.Empty;

    var entities = new List<EntityRecommendation>(result.Entities);
    if (entities.Any((entity) => entity.Type == "ClientName"))
    {
        var clientName = entities.Where((entity) => entity.Type == "ClientName").First();
        name = clientName.Entity;
        s += "Your name is " + name;
    }
    else
    {
        s += "What is your name?";
    }
    await context.PostAsync($"You gave a greeting. {s}");
    context.Wait(MessageReceived);
}

但是当我在模拟器上运行它时,我得到“对不起,我的机器人代码有问题”。出现以下错误:

执行函数时发生 ScriptHost 错误异常:Functions.messages。Microsoft.Bot.Builder:值不能为空。参数名称:模型ID。

最重要的是,我收到警告:

找不到程序集“Microsoft.Bot.Builder.resources,版本=3.9.0.0,Culture=en-US,PublicKeyToken=31bf3856ad364e35”。您是否缺少私有程序集文件?

如何让它在我的模拟器上工作?在将它推送到我的实例之前,我宁愿先在本地测试它的工作。

4

1 回答 1

0

我能够通过硬编码我的LUISApiKeyLUISAppID进行本地调试。我从门户 > MyAzureBot > 设置 > 应用程序设置中获得了这些值。

他们在本周末推出了一些新的变化——从门户下载的 Bot Service 项目不再是 CSX,它们看起来像常规的 Web 项目,因此现在可以使用 nuget 包管理器。但即使正确安装了 nuget 包,它仍然存在上述相同的错误。这次我可以卸载并重新安装它,我实际上可以看到 /bin 文件夹。那里的 Bot Builder 包仍然存在相同的错误。

我仍然想要一个非黑客解决方案。但是这个目前运行良好。

于 2017-09-11T19:52:07.023 回答