Mac下VSCode调试Azure Functions v4时Core Tools版本错误致启动失败
解决VSCode调试Azure Functions时切换Core Tools到v4版本的方法
1. 配置VSCode的Azure Functions扩展路径
打开VSCode设置(快捷键Cmd+,),搜索Azure Functions: Core Tools Path,手动指定v4版本func的可执行文件路径:
- 先在终端执行
which func,获取v4版本的路径(npm全局安装的话通常是/usr/local/bin/func) - 将该路径填入设置项,保存后重启VSCode
2. 修改项目的launch.json配置
找到项目.vscode文件夹下的launch.json,确保启动配置指向v4工具并适配dotnet-isolated模式:
{ "version": "0.2.0", "configurations": [ { "name": "Attach to .NET Isolated Functions", "type": "coreclr", "request": "attach", "processId": "${command:azureFunctions.pickProcess}", "preLaunchTask": "func: host start" }, { "name": "func: host start", "type": "azurefunctions", "request": "launch", "program": "/usr/local/bin/func", // 替换为你的v4 func路径 "args": [ "start", "--dotnet-isolated" ], "cwd": "${workspaceFolder}", "env": "${config:azureFunctions.env}" } ] }
3. 确保系统PATH中v4版本优先
终端执行func --version,确认输出为4.x.x版本:
- 如果仍显示v3,调整PATH变量将v4路径前置,执行:
export PATH="/usr/local/bin:$PATH"
可将该命令添加到~/.zshrc或~/.bash_profile中,永久生效。
4. 验证项目配置文件正确性
确认.csproj中的Functions版本和目标框架:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <AzureFunctionsVersion>v4</AzureFunctionsVersion> <OutputType>Exe</OutputType> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.14.1" /> <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.10.0" /> </ItemGroup> </Project>
local.settings.json需指定正确的运行时:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }
5. 重启VSCode并测试调试
完成所有配置后重启VSCode,按F5启动调试,观察控制台输出,确认使用的是Core Tools v4版本,且不再出现Microsoft.Azure.WebJobs.Script.Grp相关错误。
内容的提问来源于stack exchange,提问作者afriedman111
相关产品推荐
相关产品推荐

