执行Azure CLI命令func new报Value cannot be null错误如何解决
One or more errors occurred. (Value cannot be null. (Parameter 'value'))
触发原因
- Azure Functions Core Tools版本过旧,或者与本地安装的.NET SDK/运行时版本不兼容,参数传递时出现空值映射异常
- 当前执行
func new的工作目录下存在损坏的项目配置文件(比如local.settings.json、.csproj),文件中存在未赋值的必填字段,或之前初始化失败残留的无效缓存 - 执行命令时未传入必填参数,交互式选择环节出现空值提交,或者非交互式执行时
--worker-runtime、--template等必填参数被设为空 - 本地Azure CLI或Functions Core Tools的全局配置文件损坏,存在空值的全局参数
修复方案
- 升级Azure Functions Core Tools到最新稳定版,如果你使用npm安装,执行命令:
npm install -g azure-functions-core-tools@4 --unsafe-perm true;如果使用系统包管理器安装,对应执行Chocolatey、brew等包的升级命令 - 切换到一个全新的空目录执行
func new,排除现有损坏配置的影响。如果需要保留原有项目,检查local.settings.json格式是否合法、无空必填字段,检查项目配置文件中Azure Functions相关的依赖版本是否一致兼容 - 确认本地安装的.NET SDK版本匹配你使用的Functions版本,比如Functions V4要求使用.NET 6或.NET 8 LTS版本,执行
dotnet --list-sdks查看已安装版本,不匹配则安装对应LTS版.NET SDK - 执行命令时明确传入所有必填参数,跳过交互式选择环节,避免空值传递,示例命令:
func new --worker-runtime dotnet-isolated --template "HTTP trigger" --name MyHttpTrigger,根据你的实际技术栈修改--worker-runtime参数值(可选值包括node、python、java等) - 删除用户根目录下的
.azurefunctions缓存文件夹,重置Functions Core Tools的本地缓存后重新执行命令
内容的提问来源于stack exchange,提问作者asgarov1
相关产品推荐
相关产品推荐

