Visual Studio 2017中具有Azure功能的Target.NET Core 2.0

Visual Studio 2017中具有Azure功能的Target.NET Core 2.0,azure,azure-functions,Azure,Azure Functions,由于微软几天前发布了针对Azure功能的.NET Core 2.0,我试图了解如何在VS2017中针对.NET Core创建一个新的功能项目 我尝试了许多配置,但最终还是得到了.NET4.7 是否有人创建了一个新的针对.NET核心的函数 谢谢。现在,这是一个手动过程。您需要创建.NET标准2.0库,手动添加function.json并使用核心工具运行它 包Microsoft.NET.Sdk.Functions尚不支持.NET标准2.0类库。这个包将项目标识为Visual Studio的Funct

由于微软几天前发布了针对Azure功能的.NET Core 2.0,我试图了解如何在VS2017中针对.NET Core创建一个新的功能项目

我尝试了许多配置,但最终还是得到了.NET4.7

是否有人创建了一个新的针对.NET核心的函数


谢谢。

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

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

您仍然可以编写面向.NET Standard 2.0的C类库,但必须使用手动编写的function.json。C类库的模板在核心工具中尚不可用,但您可以从GitHub获得一个示例


更新:1.0.5版本的SDK现在应该支持它,正如Fabio所提到的。

这在1.0.5版本的Microsoft.NET.SDK.Functions软件包中得到了支持

在Azure功能项目中,执行以下操作:

将Microsoft.NET.Sdk.Functions包版本更新为1.0.5 右键单击项目,单击Edit.csproj选项,并将TargetFramework元素值修改为netstandard2.0
这将生成带有Azure Functions工具创建的所有工件的.NET标准2.0程序集。

到今天为止,我已经能够以合理直观的方式将.NET标准2.0作为目标,而无需编辑任何.csproj文件

您需要一个合理的最新版本的VisualStudio。我使用的是VisualStudioProfessional 15.5.3,尽管我猜社区是可行的

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

到目前为止,是纯香草的。有两个额外的位,对我来说根本不是直观的,但最终是非常容易做到的-很容易,当你知道怎么做

您需要确保Azure功能和Web作业工具为15.0.31114.0或更高版本-这是他们添加.net core 2.0支持的时候,请参阅。您可以使用工具/扩展和更新来更新,或参见

即使您已经这样做了,VisualStudio还是有点奇怪,它允许您创建以.NET2.0为目标的Azure函数。当您转到文件/新项目时,可用项目类型列表中没有任何更改,如果您选择Azure功能,框架列表中只显示.NET Framework*、无.NET标准、无.NET核心。

但如果此时您坚持并选择Azure函数,那么您将得到一个我以前从未见过的新对话框,它允许您选择Azure函数v2 Preview.NETcore

现在,当我再看项目属性时,发现它的目标是.NET标准2.0,而该标准似乎包含Microsfot.NETCore.Platforms 1.1.0。那么这是不是.NETCore2.0?不太确定,但就我的目的而言,它已经足够好了,所以现在我们来进行一些编码

干杯


试图创建默认HTTP触发器,但无法编译,因为请求对象中缺少GetQueryNameValuePairs。您只是缺少对公开该扩展方法Microsoft.AspNet.WebApi.Core的所需WebApi包的引用。添加包引用,您就可以完成了。这样做了,现在编译器对所有HttpRequest方法都不明确了。将等待1.0.6:-或RTM VS2017。谢谢。HttpRequest?还是HttpRequestMessage?您的场景中是否需要使用扩展方法?或者您只是想让1.0模板正常工作?您确实可以更改为使用HttpRequest,因为这将是2.0中的首选方式。作为参考,这是HTTP触发器的默认2.0模板的外观:。如果使用CLI func new命令,您还将获得一个包含该新模板的函数。自最初发布日志以来,该命令已更改,现在1.0.5支持该命令。这篇文章将很快更新以反映这一点。关于Azure功能和Web作业工具的15.0.31114.0版本的良好信息。它不起作用。当我尝试将.net core 2项目引用到我的Azure函数时,出现了一个错误:错误项目“X”的目标是“netcoreapp2.0”。目标为“.NETStandard,Version=v2.0”的项目无法引用它。使用当前版本的Azure函数和Web作业工具15.9.02046,Azure函数v2不再是预览版。您可以手动更改.csproj文件,将TargetFramework更新为netstandard2.1,然后将AzureFunctionsVersion更新为v2。您也不再需要对Microsoft.CSharp的引用,因此可以删除此项。