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

VS2022运行.NET6 Azure Functions时FUNCTIONS_INPROC_NET8_ENABLED报错解决

解决Azure Functions本地运行的SDK版本与Core Tools不兼容问题

问题描述

在Visual Studio Professional 2022中本地运行C#编写的Azure Functions应用时,遇到如下错误:

FUNCTIONS_INPROC_NET8_ENABLED应用设置未在local.settings.json中启用
已选择inproc6主机。
此版本的Azure Functions Core Tools要求项目引用Microsoft.NET.Sdk.Functions 4.5.0或更高版本,请更新至最新版本。

项目文件配置如下:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
        <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    </PropertyGroup>
    <ItemGroup>
      <None Remove="appSettings.Production.json" />
    </ItemGroup>
    <ItemGroup>
        <Content Include="local.settings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
            <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
        </Content>
        <Content Include="appsettings.Development.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
            <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
        </Content>
        <Content Include="appsettings.json">
            <CopyToOutputDirectory>Always</CopyToOutputDirectory>
            <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
        </Content>
    </ItemGroup>
    <ItemGroup>
        <PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.17.1" />
        <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" /> 
        <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="5.0.0" /> 
        <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.4" /> 
        <PackageReference Include="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" Version="3.0.35" /> 
        <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
        <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
        <PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
        <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.1" />
        <PackageReference Include="Microsoft.Extensions.Options" Version="7.0.1" />
        <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.3" />
        <PackageReference Include="SendGrid.Extensions.DependencyInjection" Version="1.0.1" />
        <PackageReference Include="Serilog.AspNetCore" Version="5.0.0" />
        <PackageReference Include="Serilog.Enrichers.Process" Version="2.0.2" />
        <PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
        <PackageReference Include="Serilog.Extensions.Logging" Version="3.1.0" />
        <PackageReference Include="Serilog.Settings.Configuration" Version="3.3.0" />
        <PackageReference Include="Serilog.Sinks.ApplicationInsights" Version="4.0.0" />
        <PackageReference Include="Serilog.Sinks.MSSqlServer" Version="5.7.0" />
        <PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
        <PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
        <PackageReference Include="System.Text.Encodings.Web" Version="7.0.0" />
        <PackageReference Include="System.Text.Json" Version="7.0.2" />
    </ItemGroup>
    <ItemGroup>
        <ProjectReference Include="..\RailAPI.Data\RailAPI.Data.csproj" />
        <ProjectReference Include="..\RailAPI.Services\RailAPI.Services.csproj" />
        <ProjectReference Include="..\RailAPI.Workers\RailAPI.Workers.csproj" />
    </ItemGroup>
    <ItemGroup>
        <None Update="host.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    <ItemGroup>
        <FunctionsPreservedDependencies Include="Microsoft.Extensions.Caching.Abstractions.dll" />
        <FunctionsPreservedDependencies Include="Microsoft.Extensions.DependencyModel.dll" />
        <FunctionsPreservedDependencies Include="Microsoft.Extensions.DependencyInjection.dll" />
        <FunctionsPreservedDependencies Include="System.Text.Json.dll" />
    </ItemGroup>
    <ItemGroup>
      <Page Include="appsettings.Production.json" />
      <Page Include="local.settings.json" />
    </ItemGroup>
    <Target Name="FunctionsPostBuildDepsCopy" AfterTargets="PostBuildEvent">
        <Copy SourceFiles="$(OutDir)$(AssemblyName).deps.json" DestinationFiles="$(OutDir)bin\$(AssemblyName).deps.json" />
    </Target>
    <Target Name="FunctionsPublishDepsCopy" AfterTargets="Publish">
        <Copy SourceFiles="$(OutDir)$(AssemblyName).deps.json" DestinationFiles="$(PublishDir)bin\$(AssemblyName).deps.json" />
    </Target>
    <ItemGroup>
        <None Update="local.settings.json">
            <CopyToOutputDirectory>Never</CopyToOutputDirectory>
        </None>
    </ItemGroup>
</Project>

local.settings.json配置如下:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}

尝试升级Microsoft.NET.Sdk.Functions NuGet包后,运行应用出现新错误。


解决方案

1. 同步升级核心依赖包

初始错误源于Microsoft.NET.Sdk.Functions版本(4.1.3)低于Core Tools要求的4.5.0,升级后出现新错误多为依赖版本不兼容导致,需同步升级相关Azure Functions依赖:

  • 将Microsoft.NET.Sdk.Functions升级到4.5.0或更高稳定版本(建议直接使用最新稳定版)
  • 同步升级以下关联包:
    • Microsoft.Azure.WebJobs.Extensions.DurableTask:升级到与SDK匹配的版本(如SDK 4.5.0+对应2.18.0+)
    • Microsoft.Azure.WebJobs.Extensions:升级到5.1.0+
    • Microsoft.Azure.WebJobs.Logging.ApplicationInsights:升级到3.0.38+
    • Microsoft.Azure.DurableTask.Core:版本需与Microsoft.Azure.WebJobs.Extensions.DurableTask保持一致

2. 修正local.settings.json配置

由于项目目标框架为net6.0,无需启用FUNCTIONS_INPROC_NET8_ENABLED,但需明确指定运行时版本:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "FUNCTIONS_WORKER_RUNTIME_VERSION": "~6"
  }
}

3. 清理项目缓存并重建

  • 删除项目根目录下的bin和obj文件夹,清除本地构建缓存
  • 在Visual Studio中执行清理解决方案 → 重建解决方案
  • 重启Visual Studio,避免缓存残留影响运行

4. 优化项目文件配置

项目文件中存在重复的local.settings.json配置,保留一处正确的即可,建议保留:

<Content Include="local.settings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>

同时移除不必要的FunctionsPreservedDependencies配置,升级SDK后部分依赖会自动处理,手动指定可能引发冲突。

5. 排查升级后的新错误

若仍有错误,按以下步骤定位:

  • 查看错误详情,明确是依赖冲突、缺失还是代码兼容性问题
  • 检查所有NuGet包版本与net6.0、Azure Functions v4的兼容性
  • 确认引用的项目(RailAPI.Data、RailAPI.Services等)也同步升级了对应依赖版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:23:11