首页 > 解决方案 > 在 Visual Studio 中升级 Azure 函数项目

问题描述

所以 Azure Functions v2 已经发布,如果我在 azure 中创建一个新函数并将其设置为 V2,但随后我在 Visual Studio 中发布我的旧函数项目,它会将其转回 V1。

我看看我是否在 Visual Studio 中创建了一个新的函数项目,它会问我是想要 V1 还是 V2。无论如何升级现有项目,还是我必须创建一个新项目?(如果我必须创建一个新的并复制苍蝇,这不是世界末日,但它会很好)

标签: visual-studioazureazure-functions

解决方案


Azure Function 2.x 运行时基于 .NET Core 2,并且需要针对 .NET Standard 的函数代码。您的旧函数是 v1,这意味着它们的目标框架是完整的 .NET Framework。即使您在门户上将 Function 运行时版本设置为 ~2,Azure 也可以判断代码实际上是用于运行时 ~1。

我建议您创建一个模板 v2 函数并将旧内容与新 v2 模板进行比较。

  1. 依赖项

    对于 v2,我们需要为触发器和绑定安装扩展,除了 http 和 timer。当我们在VS中创建函数项目或添加单个函数(右键项目>添加>新建Azure函数)时,会自动安装相应扩展的包,我们只需要在使用输入/输出绑定时手动安装v2的包。

  2. 功能码

    由于目标框架的不同,通常需要修改代码(比如日志类型由TraceWriter改为ILogger)。

  3. 配置

    检查host.json是否有与扩展和日志相关的设置,其格式已更改。

除了这些我们需要手动进行的更改之外,在迁移到 2.x 运行时我们还应该注意许多功能更改。


推荐阅读