SWA-CLI与Node v18.16.0及Data API Builder兼容问题求助
环境信息
OS: Windows 10 Pro (10.0.19044 Build 19044) VS Code: 1.78.2 PowerShell: 5.1.19041.2673 SWA-CLI: 1.1.2 Node.js: 18.16.0 npm: 9.6.6
问题描述
在Windows 10 Pro环境下使用SWA-CLI v1.1.2调试React应用时,遇到以下问题:
- 执行
swa db init --database-type mssql初始化数据库连接时,抛出spawnSync Microsoft.DataApiBuilder.exe UNKNOWN错误,已通过手动创建swa-db-connections文件夹和staticwebapp.database.config.json文件绕过,且部署到Azure静态Web App后数据库连接正常。 - 本地模拟运行时,启动React开发服务器后执行
swa start http://localhost:3000 --data-api-location ./swa-db-connections,提示Microsoft.DataApiBuilder.exe与当前Windows版本不兼容,导致SWA模拟器退出。
已尝试操作
- 更新所有相关工具(VS Code、Node.js、npm、SWA-CLI)
- 多次卸载重装SWA-CLI
- 删除本地
.swa/dataApiBuilder文件夹
排查建议
检查Microsoft.DataApiBuilder版本与系统架构匹配
SWA-CLI自动下载的Microsoft.DataApiBuilder可能与你的Windows 10系统架构(x86/x64)不匹配。手动下载对应架构的最新稳定版Microsoft.DataApiBuilder,替换.swa/dataApiBuilder文件夹中的可执行文件。验证.NET Runtime依赖
Microsoft.DataApiBuilder依赖.NET Runtime,确保已安装.NET 6.0或更高版本。打开PowerShell执行dotnet --version确认版本,若版本过低或未安装,安装对应架构的.NET Runtime。以管理员权限运行终端
系统权限限制可能导致可执行文件无法正常运行。右键点击PowerShell选择「以管理员身份运行」,重新执行swa start命令。安装Windows系统更新
Windows 10旧版本可能存在兼容性问题,前往「设置-更新和安全-Windows更新」安装所有待更新内容,重启系统后重试。手动指定Microsoft.DataApiBuilder路径
下载并解压Microsoft.DataApiBuilder到自定义路径(如C:\tools\dab),执行swa start时通过参数指定路径:swa start http://localhost:3000 --data-api-location ./swa-db-connections --data-api-binary-path "C:\tools\dab\Microsoft.DataApiBuilder.exe"切换终端环境
尝试在Windows Terminal或CMD中执行命令,排除PowerShell 5.1的兼容性限制。
内容的提问来源于stack exchange,提问作者James98

