如何为Azure Function v2正确导入Nuget程序包?

时间:2018-09-25 23:22:26

标签: azure-functions azure-functions-core-tools

我使用Azure函数核心工具来实现自己的功能。我正在尝试导入Newtonsoft.Json,但无法使其正常工作。这是我的基本设置:

function.proj:

MeterBinder

function.json:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>  
<ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2"/>
</ItemGroup>

run.csx:

{
  "disabled": false,
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 * * * * *"
    }
  ]
}

host.json:

using System;
using Newtonsoft.Json;

public static void Run(TimerInfo myTimer, ILogger log)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}

当我运行“ func host start”时,当它命中“使用Newtonsoft.Json”时,它立即崩溃。

enter image description here

它似乎正在正确监视我的function.proj文件,因为每次保存它时,它都声称它正在还原我的软件包。 enter image description here

我做错什么了吗?如何获取我的Nuget软件包?

1 个答案:

答案 0 :(得分:1)

为了引用.csx文件中的外部依赖关系,您需要在文件顶部添加#r <PackageName>(在这种情况下为#r Newtonsoft.Json)。

Azure函数中仅会自动引用某些依赖项,并且只要您使用#r引用来引用其他依赖项,就可以选择其他依赖项,而无需将其添加到project.json或function.proj文件中。有关更完整的列表,请查看C# developer reference for Azure Functions。