Visual Studio 2022调试Azure Function遇运行时版本匹配错误求助
问题详情
通过命令行创建.NET Isolated模式的Azure Function项目:
- 执行命令:
func init queue-events --worker-runtime dotnet-isolated --target-framework net8.0 - 添加Http触发器:
func new --template "Http Trigger" --name MyHttpTrigger
使用func start命令可以正常启动项目,但在Visual Studio 2022中启动调试时,弹出错误提示:“没有与项目指定版本匹配的Function运行时”
已做的排查操作:
- 更新了Visual Studio的Azure Functions工具及模板
- 本地环境信息:
- 已安装的.NET SDK版本:
- 3.1.426 [C:\Program Files\dotnet\sdk]
- 5.0.214 [C:\Program Files\dotnet\sdk]
- 5.0.416 [C:\Program Files\dotnet\sdk]
- 7.0.409 [C:\Program Files\dotnet\sdk]
- 8.0.105 [C:\Program Files\dotnet\sdk]
- 8.0.300 [C:\Program Files\dotnet\sdk]
- Azure Functions Core Tools版本:
Azure Functions Core Tools
Core Tools Version: 4.0.5801 Commit hash: N/A +5ac2f09758b98257e728dd1b5576ce5ea9ef68ff (64-bit)
Function Runtime Version: 4.34.1.22669 - Visual Studio版本:
Microsoft Visual Studio Community 2022 (2) (64-bit) - Current
Version 17.10.0
- 已安装的.NET SDK版本:
解决方法
指定Visual Studio使用的Core Tools版本
打开Visual Studio的选项设置:- 路径:工具 → 选项 → Azure Functions → 核心工具
- 勾选“使用已安装的Azure Functions Core Tools”,若未自动识别,手动指定本地Core Tools的安装路径(通常位于
C:\Users\<你的用户名>\AppData\Roaming\npm\node_modules\azure-functions-core-tools)
校验项目文件配置
打开项目的.csproj文件,确认以下配置项正确无误:<PropertyGroup> <TargetFramework>net8.0</TargetFramework> <AzureFunctionsVersion>v4</AzureFunctionsVersion> <OutputType>Exe</OutputType> <IsWorkerRuntime>true</IsWorkerRuntime> <WorkerRuntime>dotnet-isolated</WorkerRuntime> </PropertyGroup>清理Visual Studio缓存
- 完全关闭Visual Studio
- 删除以下目录的缓存文件:
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\17.0_<随机标识>\ComponentModelCache%USERPROFILE%\AppData\Local\Temp\VisualStudioExplorer
- 重启Visual Studio后重新尝试调试
确认.NET 8运行时完整性
执行命令dotnet --list-runtimes,检查是否包含.NET 8对应的Desktop Runtime和ASP.NET Core Runtime,若缺失需补充安装。更新Core Tools到最新版本
运行命令npm install -g azure-functions-core-tools@4,将Core Tools更新至最新v4版本,确保与.NET 8及Azure Functions v4运行时兼容。
内容的提问来源于stack exchange,提问作者Matt

