合并自定义对话框的模式 - 错误定义冲突

Merge schemas of custom dialog - Error conflicting definitions

我正在按照此页面的步骤操作: https://docs.microsoft.com/en-us/composer/how-to-create-custom-actions 并已到达需要合并两个模式的部分:机器人和您的自定义模式。但是,当 运行 在创建的项目模板(CoreAssistant 模板)中找到 powershell 脚本时,出现以下错误:

Error conflicting definitions of HelpDialog.dialog : C:\Users\user\source\repos\AvanadeCoreAssistant\AvanadeCoreAssistant\dialogs\imported\Microsoft.Bot.Components.HelpAndCancel\HelpDialog\HelpDialog.dialog Microsoft.Bot.Components.HelpAndCancel: C:\Users\user.nuget\packages\microsoft.bot.components.helpandcancel.1.2\exported\HelpDialog\HelpDialog.dialog Error conflicting definitions of HelpDialog.en-us.lu.dialog : C:\Users\user\source\repos\AvanadeCoreAssistant\AvanadeCoreAssistant\dialogs\imported\Microsoft.Bot.Components.HelpAndCancel\HelpDialog\recognizers\HelpDialog.en-us.lu.dialog Microsoft.Bot.Components.HelpAndCancel: C:\Users\user.nuget\packages\microsoft.bot.components.helpandcancel.1.2\exported\HelpDialog\recognizers\HelpDialog.en-us.lu.dialog Error conflicting definitions of HelpDialog.lu.dialog

HelpDialog 是一个已经存在的预定义对话框。我已经安装了 NodeJs 和 @botframework-cli 包,因为 powershell 脚本需要它才能 运行 bf dialog:merge 现在看来这两个来源有某种冲突。

我遇到了同样的问题。 要解决此问题,您只需删除“导入”文件夹中的相应对话框即可。但是请注意,这将删除您的机器人中的这些对话框,这不是最佳选择,但对于示例应用程序来说应该无关紧要。

我通过更改脚本修复了它。我注意到脚本试图忽略导入和生成的文件夹,但错误消息表明它没有这样做。所以我把它从 !**/generated 改为 !../generated.

要添加到其他答案,对我有用的更改如下: update-schema.ps1,第 11 行,将“!**/generated”更改为“!../generated”并添加“!../dialogs/imported”

此外,请确保您的自定义操作项目位于您的 bot 目录的内部,它应该是“schemas”文件夹旁边的一个文件夹,以便脚本找到它。

Note/Edit:将项目嵌套在 bot 中可以使脚本正常工作,但由于会导致其他错误,我不推荐这样做。奇怪的是,我发现最好将整个自定义解决方案上移一个级别,紧挨着机器人项目。您可能需要在记事本中编辑 [botName].sln 文件以引用项目的位置,以及编辑 bot 项目的项目引用。