【发布时间】:2018-03-18 10:48:19
【问题描述】:
由于微软几天前发布了用于 Azure Functions 的 .NET Core 2.0,我试图了解如何在 VS2017 中针对 .NET Core 创建一个新的 Functions 项目。
我尝试了很多配置,但最终还是使用 .NET 4.7。
是否有人设法创建了针对 .NET Core 的新函数?
谢谢。
【问题讨论】:
标签: azure azure-functions
由于微软几天前发布了用于 Azure Functions 的 .NET Core 2.0,我试图了解如何在 VS2017 中针对 .NET Core 创建一个新的 Functions 项目。
我尝试了很多配置,但最终还是使用 .NET 4.7。
是否有人设法创建了针对 .NET Core 的新函数?
谢谢。
【问题讨论】:
标签: azure azure-functions
截至今天,我已经能够以“合理”直观的方式定位 .Net Standard 2.0,而无需编辑任何 .csproj 文件。
您需要一个相当新的 Visual Studio 版本。我正在使用 Visual Studio Professional 15.5.3(尽管我猜这个社区会起作用)。
您需要安装 Azure 开发工作负载。这将安装一个名为 Azure Functions 和 Web Jobs Tools 的扩展。
到目前为止,还是普通的香草。还有 2 点对我来说根本不直观,但最终很容易做到 - 当你知道如何做时很容易!
即使您已经这样做了,Visual Studio 对于让您创建面向 .net 2.0 的 Azure Functions 还是有点奇怪。当您转到 File/New Project 时,可用项目类型列表中没有任何变化,如果您选择 Azure Functions,则框架列表仅显示 .NET Framework *,没有 .NET Standard,没有 .NET Core。
但如果此时你坚持并选择了 Azure Functions,那么你会得到一个我以前从未见过的新对话框,它允许你选择 Azure Functions v2 Preview (.NET Core)。
现在,当我查看项目属性时,发现它的目标是 .NET Standard 2.0,而后者似乎包含 Microsfot.NETCore.Platforms (1.1.0)。那么这是否是.net core 2.0?不太确定,但对于我的目的来说已经足够好了,所以现在开始编写一些代码。
干杯!
【讨论】:
.csproj 文件以将TargetFramework 更新为netstandard2.1,然后将AzureFunctionsVersion 更新为v2。您也不再需要对Microsoft.CSharp 的引用,因此可以删除此项目。
Microsoft.NET.Sdk.Functions 包的 1.0.5 版本支持此功能。
在您的 Azure Functions 项目中,执行以下操作:
Microsoft.NET.Sdk.Functions 包版本更新为1.0.5Edit <projectname>.csproj 选项并将TargetFramework 元素值修改为netstandard2.0
这将生成 .NET Standard 2.0 程序集,其中包含由 Azure Functions 工具创建的所有工件。
【讨论】:
Microsoft.AspNet.WebApi.Core) 所需的 WebApi 包的引用。添加包引用,您就完成了。
func new 命令,您还将获得该新模板的功能。
目前,这是一个手动过程。您需要创建 .NET Standard 2.0 库,手动添加 function.json 并使用核心工具运行它。
Microsoft.NET.Sdk.Functions 包还不支持 .NET Standard 2.0 类库。这是将项目标识为 Visual Studio 的 Functions 项目并在构建期间从属性生成 function.json 的包。
您仍然可以创作面向 .NET Standard 2.0 的 C# 类库,但您必须使用手动创作的 function.json。 C# 类库的模板在 Core Tools 中尚不可用,但您可以从 GitHub 获取示例。
来自Develop Azure Functions on any platform
更新:1.0.5 版本的 SDK 现在应该支持它,正如 Fabio 所提到的。
【讨论】: