升级Bot Framework后报fromFile不是内置函数错误该如何解决?
报错原因
Bot Framework 最新版本SDK已经将fromFile从LG的默认内置函数移除,必须手动注册对应评估器或开启相关配置才能正常调用,这就是你触发"没有对应评估器"报错的核心原因。
修复步骤
- 首先确认项目依赖的
Microsoft.Bot.Builder.LanguageGeneration包版本和你的Bot Framework核心SDK版本完全一致,避免版本兼容导致的函数注册失效问题。 - 如果你是直接基于Bot Framework SDK手写代码的项目,在LG解析器初始化的位置手动注册
fromFile评估器即可,C#示例代码如下:
var expressionParser = new ExpressionParser(); // 注册fromFile自定义函数 expressionParser.EvaluatorLookup = (functionName) => { if(functionName.Equals("fromFile", StringComparison.OrdinalIgnoreCase)) { return new FromFileEvaluator(); } return BuiltInFunctions.Lookup(functionName); }; // 用自定义的表达式解析器初始化LG解析器 var lgResources = LGParser.ParseFile("你的LG文件路径", expressionParser: expressionParser);
- 如果你是从Bot Framework Composer导出的项目,直接修改appsettings.json配置文件,添加如下配置项即可自动注册
fromFile函数:
{ "LG": { "AllowFromFile": true } }
- 完成上述配置后,再校验
fromFile参数中的相对路径是否正确:路径基准是当前LG文件所在的目录,确保要读取的JSON卡片文件路径和你写的相对路径匹配。
内容的提问来源于stack exchange,提问作者Aron Gabor Kelsch
相关产品推荐
相关产品推荐

