如何将 Azure Functions v3 迁移到 .net core 5.0

Posted

技术标签:

【中文标题】如何将 Azure Functions v3 迁移到 .net core 5.0【英文标题】:How to migrate Azure Functions v3 to .net core 5.0 【发布时间】:2021-02-26 14:35:32 【问题描述】:

我已将 Azure Function v3 项目中的所有程序集升级到版本 5.0,但我无法运行该函数。这是我函数的 csproj 文件的部分定义:

<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AzureFunctionsVersion>v3</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="4.0.3" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.11" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.SignalRService" Version="1.2.2" />
    <PackageReference Include="System.Net.Http" Version="4.3.4" />
  </ItemGroup>

使用 .NET 5 实现此功能的必要解决方法是什么?谷歌没有得出任何结论。

更多信息:5.0.100 [C:\Program Files\dotnet\sdk]

这是我收到的错误消息之一:

无法加载文件或程序集“Microsoft.Extensions.Configuration.Abstractions,Version=5.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。系统找不到指定的文件。

【问题讨论】:

功能尚不支持 .NET 5,他们估计这将在今年年底准备就绪。请参阅此 GitHub 评论:github.com/Azure/azure-functions-host/issues/… 它从昨天开始支持.NET Core 5。它一直处于预览模式,但现在是 GA。 现在对 .Net Core 5 的支持已经上线,您能否更新您接受的答案。底部的链接包含很多很棒的东西。 【参考方案1】:

Dave Brock 创建了一个网页来解释使用预览位的过程。但我相信它应该足够接近释放位。见here。

Brandon Minnick 的指南似乎更全面。见here。

【讨论】:

当人们希望迁移现有代码时,为什么还要继续链接“创建”指南。 在我看来,这两个链接指南确实包含很多关于迁移的有趣内容。【参考方案2】:

Azure 函数团队通过引入新的隔离进程模型来运行 .NET 函数应用,发布了对 .Net 5 的支持。

您可以在announcement 中了解更多信息。

要将您的函数应用迁移到.Net 5,您可以关注此guide。

【讨论】:

虽然该链接确实指向 Azure Functions 5 上的一些最佳信息,但它不是迁移指南。如果你能链接到一个,我会喜欢的。【参考方案3】:

@Marc 的评论是正确的,目前 Azure Functions 不支持 .net 5。当前 ETA 是年底前的预览版。

请关注this github issue 以获取任何更新。

【讨论】:

好的,那么在这种情况下,我们应该在 linux 上降级并使用 3.0 吗? 昨天还在直播。

以上是关于如何将 Azure Functions v3 迁移到 .net core 5.0的主要内容,如果未能解决你的问题,请参考以下文章

Azure Function v3 - 在启动中添加标识时“无法访问 Azure Functions 运行时”

添加注入的 TelemetryConfiguration 后,Azure Functions v3 不再自动跟踪依赖项

appsettings.json 值在 Azure Functions App V3 中未绑定

.NET 5 支持 Azure Functions OpenAPI 扩展啦

如何在 Visual Studio 中使用 .NET 5(独立进程)调试 Azure Functions?

Azure 路易斯迁移问题