目标在Visual Studio 2017中使用Azure函数的.NET Core 2.0

问题描述:

由于微软几天前发布了用于Azure函数的.NET Core 2.0,我试图了解如何在VS2017中创建一个新的函数项目,以.NET Core为目标。目标在Visual Studio 2017中使用Azure函数的.NET Core 2.0

我已经尝试了很多配置,仍然以.NET 4.7结束。

有没有人设法创建一个针对.NET Core的新函数?

谢谢。

现在,这是一个手动过程。您需要创建.NET Standard 2.0库,手动添加function.json并使用核心工具运行它。

软件包Microsoft.NET.Sdk.Functions尚不支持.NET标准2.0类库。这是一个将项目标识为Visual Studio的项目并在构建期间根据属性生成function.json的包。

您仍然可以创作以.NET Standard 2.0为目标的C#类库,但您必须使用手动创作的function.json。 Core工具中尚未提供C#类库的模板,但您可以从GitHub获取示例。

Develop Azure Functions on any platform

更新:1.0.5版本SDK现在应该支持它,因为法比奥被提及。

+0

这已经改变,因为博客最初发布,这正与1.0.5支持。该帖子将会更新以尽快反映。 –

这受Microsoft.NET.Sdk.Functions包的1.0.5版支持。

在你Azure的项目功能,请执行以下操作:

  • 更新Microsoft.NET.Sdk.Functions包版本1.0.5
  • 右键单击您的项目,点击Edit <projectname>.csproj选项并修改TargetFramework元素值netstandard2.0

这将生成.NET Standard 2.0程序集以及由Azure Functions工具创建的所有工件。

+0

试图创建一个默认的HTTP触发器,由于请求对象中缺少“GetQueryNameValuePairs”而无法编译。 –

+0

你只是缺少对公开该扩展方法('Microsoft.AspNet.WebApi.Core')的必需WebApi包的引用。添加软件包引用,你就完成了。 –

+0

这样做了,现在编译器对所有的HttpRequest方法都不明确。将等待1.0.6 :-)或者RTM VS2017。谢谢。 –

截至今天,我已经能够以“合理”直观的方式将.Net Standard 2.0作为目标,而无需编辑任何.csproj文件。

您需要合理的最新版本的Visual Studio。我使用的是Visual Studio Professional 15.5.3(尽管我猜这个社区会起作用)。

您需要安装Azure开发工作负载。这将安装称为Azure函数和Web Jobs工具的扩展。

到目前为止是如此普通的香草。还有两点对我来说根本不是直观的,但最终很容易做到 - 当你知道怎么做的时候很容易!

  1. 你需要确保的是,Azure的功能和Web作业工具是15.0.31114.0以上 - 这是当他们加入.NET 2.0的核心支持(见https://github.com/Azure/Azure-Functions/blob/master/VS-AzureTools-ReleaseNotes.md)。您可以使用工具/扩展和更新来更新它,或者参见https://marketplace.visualstudio.com/items?itemName=VisualStudioWebandAzureTools.AzureFunctionsandWebJobsTools

  2. 即使您已经这样做了,Visual Studio对于创建以.net 2.0为目标的Azure函数也有点奇怪。当您进入File/New Project时,可用项目类型列表中没有任何更改,如果选择Azure函数,则框架列表仅显示.NET Framework *,不支持.NET标准,不支持.NET Core。
    enter image description here

但如果此时你持之以恒,选择Azure的功能,你再得到一个新的对话框,我从来没有见过的,它允许您选择Azure的功能V2预览(.NET核心)。 Azure Functions v2 Preview (.NET Core)

现在,当我查看项目属性时,事实证明它是针对.NET Standard 2.0的,而.NET Standard 2.0似乎包含Microsfot.NETCore.Platforms(1.1.0)。那么这是.net核心2.0还是不是?不太确定,但它对于我的目的来说已经足够好了,所以现在我们要去编码。

干杯!

enter image description here

+0

有关Azure功能和Web作业工具所需版本15.0.31114.0的更多信息。 –

+1

它不起作用。当我尝试将.net core 2项目引用到我的Azure功能时,出现错误: 错误\t \t项目'X'目标'netcoreapp2.0'。它不能被以'.NETStandard,Version = v2.0'为目标的项目引用。 –