我正在使用VS 2017来创建ASP.NET Core Web应用程序。在安装Sendgrid软件包时,我收到了以下错误。
Package Sendgrid 8.0.5与netcoreapp1.0(.NETCoreApp,Version = v1.0)不兼容。 Package Sendgrid 8.0.5支持:net(.NETFramework,Version = v0.0) 软件包Microsoft.AspNet.WebApi.Client 5.2.3与netcoreapp1.0(.NETCoreApp,Version = v1.0)不兼容。软件包Microsoft.AspNet.WebApi.Client 5.2.3支持: net45(.NETFramework,Version = v4.5) portable-net45 + netcore45 + wp8 + wp81 + wpa81(.NETPortable,Version = v0.0,Profile = wp8 + netcore45 + net45 + wp81 + wpa81) 包SendGrid.CSharp.HTTP.Client 3.0.0与netcoreapp1.0(.NETCoreApp,Version = v1.0)不兼容。包SendGrid.CSharp.HTTP.Client 3.0.0支持:net(.NETFramework,Version = v0.0) 一个或多个程序包与.NETCoreApp,Version = v1.0。
不兼容
此错误的任何解决方案?
答案 0 :(得分:3)
您可能需要使用预发布版本。
答案 1 :(得分:1)
该错误为您提供了SendGrid 8.0.5及其依赖项的支持矩阵。
net net45 portable-net45+netcore45+wp8+wp81+wpa81
SendGrid 1
Microsoft.AspNet.WebApi.Client 1 1
SendGrid.CSharp.HTTP.Client 1
您可以看到它们都不支持核心框架(netcoreapp
),而是需要完整框架(net
)。
如果您需要在Core Framework上运行您的应用,则无法使用SendGrid 8.0.5。您的选项包括(但不限于)使用SendGrid.NetCore
或使用MailKit
。
如果您不要求您的应用程序在Core Framework上运行,并且只支持完整框架(net
),那么您可以使用SendGrid 8.0.5。
对于我们自己的应用,我们选择使用MailKit
版本1.10.0
,因为它比SendGrid.NetCore
更成熟,并且它支持核心框架。我们按如下方式使用它:
project.json
"dependencies": {
"MailKit": "1.10.0"
},
"frameworks": {
"netcoreapp1.1": {}
}
使用带有MailKit的SendGrid发送电子邮件。
var mimeMessage = new MimeMessage();
mimeMessage.From.Add(new MailboxAddress("Admin", "admin@mailbox.com"));
mimeMessage.To.Add(new MailboxAddress("Jon Doe", "jon@doe.com"));
mimeMessage.Subject = "An Email for You!";
mimeMessage.Body = new TextPart("html")
{
Text = "This is the message.";
};
using (var client = new SmtpClient())
{
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.Connect("smtp.sendgrid.net", 587);
await client.AuthenticateAsync("myuser@foobar.com", "ASD43234GDX");
await client.SendAsync(mimeMessage);
client.Disconnect(true);
}