我使用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”时,它立即崩溃。
它似乎正在正确监视我的function.proj文件,因为每次保存它时,它都声称它正在还原我的软件包。
我做错什么了吗?如何获取我的Nuget软件包?
答案 0 :(得分:1)
为了引用.csx文件中的外部依赖关系,您需要在文件顶部添加#r <PackageName>
(在这种情况下为#r Newtonsoft.Json
)。
Azure函数中仅会自动引用某些依赖项,并且只要您使用#r
引用来引用其他依赖项,就可以选择其他依赖项,而无需将其添加到project.json或function.proj文件中。有关更完整的列表,请查看C# developer reference for Azure Functions。