我有以下代码,当我将它同步到我的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);
}
但是当我在模拟器上运行它时,我得到了#34;抱歉,我的机器人代码存在问题。&#34;出现以下错误:
发生了ScriptHost错误 执行函数时出现异常:Functions.messages。 Microsoft.Bot.Builder: 值不能为空。 参数名称:modelID。
最重要的是,我收到警告:
无法找到程序集&#39; Microsoft.Bot.Builder.resources,Version = 3.9.0.0, Culture = en-US,PublicKeyToken = 31bf3856ad364e35&#39;。你错过了私人吗? 汇编文件?
如何在模拟器上运行?在将其推送到我的实例之前,我宁愿能够先在本地测试它。
答案 0 :(得分:0)
我能够通过硬编码我的 LUISApiKey 和 LUISAppID 进行本地调试。我从门户网站获取了这些值&gt; MyAzureBot&gt;设置&gt;应用程序设置。
他们在本周末推出了一些新的变化 - 从门户网站下载的Bot服务项目不再是CSX,它们看起来像普通的Web项目,因此nuget包管理器现在可以使用了。但即使正确安装了nuget包,它仍然会出现同样的错误。这次我可以卸载并重新安装它,我实际上可以看到/ bin文件夹。那里的Bot Builder包仍然存在同样的错误。
我仍然想要一个非黑客解决方案。但是这个目前运作良好。