我正在按照此页面的步骤操作: https://learn.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.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.1.2\exported\HelpDialog\recognizers\HelpDialog.en-us.lu.dialog Error conflicting definitions of HelpDialog.lu.dialog
HelpDialog 是一个已经存在的预定义对话框。我已经安装了 NodeJs 和 @botframework-cli 包,因为 powershell 脚本需要它才能运行 bf dial:merge
,现在看来这两个源存在某种冲突。
最佳答案
为了添加其他答案,对我有用的更改如下: update-schema.ps1,第 11 行,将“!**/生成”更改为“!../生成”并添加“!../dialogs/imported”
此外,请确保您的自定义操作项目位于 bot 目录内,它应该是“schemas”文件夹旁边的文件夹,以便脚本找到它。
注意/编辑:将项目嵌套在机器人内可以使脚本正常工作,但由于会导致其他错误,我不建议这样做。奇怪的是,我发现最好将整个自定义解决方案提升一个级别,靠近机器人项目。您可能需要在记事本中编辑 [botName].sln 文件以引用项目的位置,以及编辑机器人项目的项目引用。
关于bot-framework-composer - 自定义对话框的合并架构 - 定义冲突时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68472184/