如何将 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 扩展啦