Как создать проект F # Azure Functions (v1 & v2) в Visual Studio 2017? - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу легко создать проект F # Azure Functions (v2) в Visual Studio 2017.

Есть ли какой-нибудь ZIP-файл с проектом Template F #, который я могу использовать и публиковать с помощью контекстного меню Visual Studio Publish?

Мне бы хотелось, чтобы в VS был шаблон проекта функции F # Azure, как и в C #.

C# Azure Function Project Template

Publish Menu

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Мне пришлось пройти через преобразование проекта функции C # в F #:

  1. Создание проекта функции C # Azure
  2. переименовать .csproj в .fsproj
  3. Отредактируйте файл .fsproj и убедитесь, что в нем есть следующие элементы:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.24" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Function1.fs" />
    <Content Include="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </Content>
  </ItemGroup>

Убедитесь, что вы установили host.json и local.settings.json на <Content... вместо <None..., чтобы он копировал его в выходной файл.

  1. Убедитесь, что у вас установлена ​​Microsoft.NET.Sdk.Functions
  2. Ваш Function1.fs файл должен выглядеть примерно так (для HttpTrigger)

namespace FunctionApp1

open System
open Microsoft.Azure.WebJobs
open Microsoft.Azure.WebJobs.Host
open System;
open System.IO;
open System.Threading.Tasks;
open Microsoft.AspNetCore.Mvc;
open Microsoft.Azure.WebJobs;
open Microsoft.Azure.WebJobs.Extensions.Http;
open Microsoft.AspNetCore.Http;
open Microsoft.Extensions.Logging;

module Function1 =
    [<FunctionName("Function1")>]
    let Run ([<HttpTrigger(AuthorizationLevel.Function, [|"post"|])>] req: HttpRequest) (log: ILogger) = 
        async {
            return "some result"
        }
        |> Async.StartAsTask

  1. Теперь вы готовы к развертыванию. Просто щелкните правой кнопкой мыши на проекте и нажмите Publish...
  2. Выберите Azure Function App и следуйте инструкциям. Обязательно выберите Run from pakcage file.

enter image description here

0 голосов
/ 28 апреля 2018

Шаблоны функций Azure для F # отсутствуют, что означает отсутствие возможности создавать скомпилированные проекты F # в Visual Studio и CLI функций.

Существует открытая проблема github для введения такой поддержки. Хотя это не очевидно из этой проблемы, мне сказали, что шаблоны появятся очень скоро.

На данный момент вам необходимо:

  • Создание общего проекта библиотеки классов F #
  • Справочные функции Пакет SDK NuGet
  • Добавить статический метод для вашей функции

Вы можете использовать этот образец в качестве отправной точки, но не забудьте обновить его до последних версий пакетов NuGet.

...