You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中Azure Functions本地测试报错:缺少.NET Core 3.1运行时

Azure Functions本地测试.NET版本不兼容问题解决指南

问题描述

我是Azure Functions新手,在VS Code中创建Hello World版Azure Function,本地测试时出现以下错误:

/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : You must install or update .NET to run this application. [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error :  [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : App: /Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/tools/netcoreapp3.1/Microsoft.NET.Sdk.Functions.Generator.dll [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : Architecture: arm64 [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : Framework: 'Microsoft.NETCore.App', version '3.1.0' (arm64) [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : .NET location: /usr/local/share/dotnet/ [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error :  [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : The following frameworks were found: [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error :   6.0.12 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error :  [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : Learn about framework resolution: [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : https://aka.ms/dotnet/app-launch-failed [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error :  [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : To install missing framework, download: [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=3.1.0&arch=arm64&rid=osx.13-arm64 [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error :  [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]
/Users/<username>/.nuget/packages/microsoft.net.sdk.functions/3.0.10/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : Metadata generation failed. [/Users/<username>/Library/CloudStorage/OneDrive-<companyName>/ConsentizerSandbox/sand-generateUserGuid/sand-generateUserGuid.csproj]

已尝试重置工作区、检查NuGet包、执行dotnet restore、重新安装.NET及调整dotnet运行时/SDK等方法,均未解决问题。项目构建正常,但构建后Azure扩展接管时返回上述错误。

我的Function代码如下:

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

namespace Consentizer.guid
{
    public static class helloWorlFc
    {
        [FunctionName("helloWorld")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
 
            string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            string responseMessage = string.IsNullOrEmpty(name)
                ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
                : $"Hello, {name}. This HTTP triggered function executed successfully.";

            return new OkObjectResult(responseMessage);
        }
    }
}

核心问题分析

错误明确指出Microsoft.NET.Sdk.Functions 3.0.10版本依赖.NET Core 3.1运行时,但本地仅安装了.NET 6.0.12,导致元数据生成失败。

具体解决步骤

方案1:升级Microsoft.NET.Sdk.Functions包到兼容.NET 6的版本

  • 打开项目的.csproj文件,找到<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.10" />
  • 将版本号修改为4.x.x(例如4.2.0,该版本完全兼容.NET 6)
  • 保存文件后执行dotnet restore重新安装依赖包

方案2:安装缺失的.NET Core 3.1运行时

  • 安装对应ARM64架构的.NET Core 3.1运行时,匹配错误提示的系统架构要求
  • 安装完成后重启VS Code,重新启动本地函数测试

方案3:切换项目目标框架到.NET 6

  • 打开.csproj文件,将<TargetFramework>netcoreapp3.1</TargetFramework>修改为<TargetFramework>net6.0</TargetFramework>
  • 同步升级Microsoft.NET.Sdk.Functions包版本到4.x,避免版本不匹配

本地测试与部署验证

  • 修改完成后,在VS Code中按F5启动本地函数,验证是否正常响应HTTP请求
  • 测试通过后,直接使用VS Code Azure扩展部署到Azure,部署前确认Azure函数应用的运行时设置为.NET 6(或对应安装的版本)

内容的提问来源于stack exchange,提问作者CZBios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:20:30