.NET7 升级后,在本地运行 Azure 函数会出现“无运行时”错误

Gab*_*ncu 24 .net c# function azure visual-studio

最近我想升级我的Azure功能以使用.NET 7。由于某些原因,在完成所有必需的步骤后,当我想运行任何函数时,我不断收到此错误消息框

没有可用的 Functions 运行时与项目指定的版本项目相匹配

我检查了.csproj文件中的设置是否正确:

<PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>
    <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
    <ImplicitUsings>enable</ImplicitUsings>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

是的,它的拼写为小写 v ,表示“v4”。我检查了是否根据我的体系结构(64 位 Windows)安装了 .NET7 的托管捆绑包,并在安装后重新启动了 IIS 服务。我尝试了干净重建,重新打开 Visual Studio,重新启动我的计算机,但似乎没有任何效果。我还安装了.NET 7 SDK,并且正在使用Visual Studio 2022。如果需要更多信息,我将相应更新我的问题。谢谢你!

Gab*_*ncu 92

我最终找到了适合我的案例的解决方案,如果其他人遇到它,我会将其发布在这里。正如这个Github 问题的评论中提到的,我必须去

工具 -> 选项 -> 项目和解决方案 -> Azure 函数,然后单击“检查更新”按钮。

在此输入图像描述

然后我必须下载并安装待处理的更新。

在此输入图像描述

这似乎解决了我的问题。希望这个解决方案也能帮助其他人。

  • 我在将 dotnet 隔离的 azure 函数项目升级到 net8.0 时遇到了这个问题。这个解决方案为我解决了这个问题。我还更新了[此处]引用的一些 nuget 软件包(https://azure.microsoft.com/en-us/updates/ga-azure-functions-supports-net-8-in-the-isolated-worker-model/) 。 (5认同)
  • 谢谢加布里埃尔找到这个。你知道这个“功能”是如何添加的吗?我了解使用不同版本的运行时,但为什么这些“工具集和模板”更新没有自动包含在 Visual Studio 版本中?是否计划添加一个“更新”按钮,该按钮将隐藏在产品的每个功能的设置中的某个位置?理想情况下,它会提示您选择或安装正确的运行时或只是自动工作。也许应该将其添加为 nuget 包?我们是否应该尝试让微软知道这一点? (3认同)