首页 > 解决方案 > Azure Functions v2 从 .Net Standard 更改为 .Net Core

问题描述

上个月我一直在使用 Azure Functions,并且很高兴地将它们创建为 V2(.Net 标准)

问题

现在,在最近的更新之后,我只能将 V2 创建为(.Net Core),而且这些似乎与旧类型不兼容。

问题

我真的需要将所有旧功能移植到这种新类型中吗?这是我尝试在旧函数中引用新函数时遇到的错误。

Project is not compatible with netstandard2.0 (.NETStandard,Version=v2.0). Project supports: netcoreapp2.0 (.NETCoreApp,Version=v2.0)

两个 V2 项目并排的屏幕截图。

在此处输入图像描述

标签: azureazure-functions

解决方案


目前,netstandard2.0(老模板)和netcoreapp2.1(几天前更新)目标框架都可以工作。函数运行时 2.x 从一开始就基于 .Net Core env,因此这个 TF 更改应该对之前构建的函数没有影响,只是提供对 .Net Core API 和相关依赖项的访问。

但是我们不能引用针对不同框架的项目,我们必须改变TF来实现兼容性。右键单击项目和Edit <FunctionProjectName>.csproj.

在此处输入图像描述

请参阅新模板中的默认 TF。(将 VS 更新到最新的 15.8.8 以使用最新的 .Net Core 2.1。)

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>

我们可以将新项目修改回 TF netstandard2.0,但我建议将旧项目更新为 netcoreapp2.1 以获得长期兼容性。记得在旧项目中更新Microsoft.NET.Sdk.Functions1.0.*(即最新的)。


推荐阅读