无法在 C# Azure 函数中使用 Nuget 包

Can't use Nuget package in C# Azure function

我正在尝试编写一个将使用 Sendgrid 发送电子邮件的 azure 函数。但是,我无法让我的功能识别外部 nuget 包。这是我拥有的:

project.json

{
"frameworks": {
    "net46": {
        "dependencies": {
            "SendGrid": "9.9.0"
        }
    }
  }
}

run.csx:

using System;
using Sendgrid;

public static void Run(TimerInfo myTimer, TraceWriter log)
{
    var client = new SendGridClient("xxx");
    var fromAddr = new EmailAddress("xxx@xxx.com", "xxx");
    var toAddr = new EmailAddress("xxxx", "xxx);
    var msg = MailHelper.CreateSingleEmail(fromAddr, toAddr, "subject", "content", "content");
    client.SendEmailAsync(msg).Wait();
}

我收到这个错误:

[Error] run.csx(8,7): error CS0246: The type or namespace name 'Sendgrid' could not be found (are you missing a using directive or an assembly reference?)

我错过了什么?

如果您确实在 v1 运行时,那么您只是缺少具有 EmailAddress 类型的 using 语句。

将此添加到 —

using SendGrid.Helpers.Mail;

如果您使用的是 v2(测试版/.NET Core),只需关注评论中的 kim 的 URL (you'll need a function.proj instead) —

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
    </PropertyGroup>  
    <ItemGroup>
        <PackageReference Include="SendGrid" Version="9.9.0"/>
    </ItemGroup>
</Project>

SendGrid NuGet package 目标是 .NET Standard 1.3,因此 .NET Core 上的 运行 应该没有问题。