You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio 2017中创建F# Azure Functions项目及获取v2版模板?

嘿,我来帮你搞定这两个关于F# Azure Functions和Visual Studio 2017的问题:

1. 在Visual Studio 2017中创建F# Azure Functions(v1及v2版本)项目

v1版本(基于.NET Framework)

这个版本有官方模板,步骤很直接:

  • 先确保你在安装VS2017时勾选了Azure开发工作负载和F#语言支持,如果没装可以通过VS安装程序补充安装
  • 打开VS2017,点击「创建新项目」
  • 在搜索框输入「Azure Functions」,找到F# Azure Functions模板(这就是v1版本的模板,基于.NET Framework)
  • 填写项目名称和存储路径,点击「确定」
  • 在弹出的「新建Azure Functions」对话框里,选你需要的触发器类型(比如HTTP触发器、定时器触发器),确认框架是.NET Framework,最后点击「创建」就能得到可用的v1项目了

v2版本(基于.NET Core)

VS2017没有官方的F# v2模板,得手动搭建,步骤如下:

  • 同样先确认安装了Azure开发工作负载和F#语言支持
  • 先创建一个F# .NET Core类库项目
  • 右键项目→「管理NuGet程序包」,安装以下必要包:
    • Microsoft.Azure.WebJobs(Functions核心运行包)
    • Microsoft.Azure.WebJobs.Extensions.Http(如果用HTTP触发器,其他触发器对应安装扩展包)
    • Microsoft.NET.Sdk.Functions(v2版本的Functions SDK)
    • Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator(让VS识别这是个Functions项目)
  • 在项目根目录添加host.json文件,内容如下:
    {
      "version": "2.0"
    }
    
  • 添加一个F#代码文件(比如HttpTrigger.fs),写一个示例触发器代码:
    namespace FSharpFunctionV2
    
    open Microsoft.Azure.WebJobs
    open Microsoft.Azure.WebJobs.Extensions.Http
    open Microsoft.AspNetCore.Http
    open Microsoft.Extensions.Logging
    open Microsoft.AspNetCore.Mvc
    
    module HttpTrigger =
        [<FunctionName("HttpTrigger")>]
        let Run ([<HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)>] req: HttpRequest, log: ILogger) =
            async {
                log.LogInformation("F# HTTP trigger v2 processed a request.")
                return OkObjectResult("Hello from F# Azure Functions v2!") :> IActionResult
            } |> Async.StartAsTask
    
  • 编辑项目文件(.fsproj),添加以下属性,让VS识别为v2 Functions项目:
    <PropertyGroup>
      <AzureFunctionsVersion>v2</AzureFunctionsVersion>
    </PropertyGroup>
    
2. F# Azure Functions v2项目模板ZIP及VS原生模板支持

现成的可发布ZIP模板

当然有!你可以自己把上面搭建好的v2项目打包成ZIP,或者找社区分享的现成模板。这种模板导入VS后,完全支持通过VS的「发布」上下文菜单直接发布到Azure:

  • 打包方法:把配置好的项目(包含正确的NuGet包、host.json、代码文件和修改后的.fsproj)压缩成ZIP文件
  • 导入VS:打开VS2017,选择「导入项目」→「从ZIP文件导入」,跟着向导完成导入
  • 发布:右键导入后的项目,选择「发布」,选择Azure作为目标,后续流程和C# Functions项目完全一致

VS原生模板支持的情况

很可惜,Visual Studio 2017并没有为F# Azure Functions v2提供官方原生模板,不像C#那样可以直接选。这主要是因为当时Azure Functions团队的资源优先倾斜给了C#和JavaScript的生态支持,F#的官方模板支持是在后续的VS版本(比如2019及以后)才逐步完善的。所以在VS2017里,咱们只能靠手动搭建或者社区模板来实现。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:24:56