在 ASP.NET 核心应用程序中安装包时出错
Error while installing package in ASP.NET core app
我正在使用 VS 2017 创建 ASP.NET 核心 Web 应用程序。安装 Sendgrid 包时,出现以下错误。
Package Sendgrid 8.0.5 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Sendgrid 8.0.5 supports: net (.NETFramework,Version=v0.0)
Package Microsoft.AspNet.WebApi.Client 5.2.3 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.AspNet.WebApi.Client 5.2.3 supports:
net45 (.NETFramework,Version=v4.5)
portable-net45+netcore45+wp8+wp81+wpa81 (.NETPortable,Version=v0.0,Profile=wp8+netcore45+net45+wp81+wpa81)
Package SendGrid.CSharp.HTTP.Client 3.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package SendGrid.CSharp.HTTP.Client 3.0.0 supports: net (.NETFramework,Version=v0.0)
One or more packages are incompatible with .NETCoreApp,Version=v1.0.`
这个错误有什么解决办法吗?
您可能需要使用 pre-release 版本。
该错误为您提供了 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
您可以看到其中 none 个支持核心框架 (netcoreapp
) 而需要完整框架 (net
)。
如果您要求您的应用在核心框架上 运行,则不能使用 SendGrid 8.0.5。您的选择包括(但不限于)使用 SendGrid.NetCore
或使用 MailKit
.
如果您的应用不需要 运行 在核心框架上,并且可以只支持完整框架 (net
),那么您可以使用 SendGrid 8.0.5。
对于我们自己的应用程序,我们选择使用 MailKit
版本 1.10.0
,因为它比 SendGrid.NetCore
更成熟并且支持核心框架。我们按如下方式使用它:
project.json
"dependencies": {
"MailKit": "1.10.0"
},
"frameworks": {
"netcoreapp1.1": {}
}
使用 SendGrid 和 MailKit 发送电子邮件。
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);
}
我正在使用 VS 2017 创建 ASP.NET 核心 Web 应用程序。安装 Sendgrid 包时,出现以下错误。
Package Sendgrid 8.0.5 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Sendgrid 8.0.5 supports: net (.NETFramework,Version=v0.0) Package Microsoft.AspNet.WebApi.Client 5.2.3 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.AspNet.WebApi.Client 5.2.3 supports: net45 (.NETFramework,Version=v4.5) portable-net45+netcore45+wp8+wp81+wpa81 (.NETPortable,Version=v0.0,Profile=wp8+netcore45+net45+wp81+wpa81) Package SendGrid.CSharp.HTTP.Client 3.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package SendGrid.CSharp.HTTP.Client 3.0.0 supports: net (.NETFramework,Version=v0.0) One or more packages are incompatible with .NETCoreApp,Version=v1.0.`
这个错误有什么解决办法吗?
您可能需要使用 pre-release 版本。
该错误为您提供了 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
您可以看到其中 none 个支持核心框架 (netcoreapp
) 而需要完整框架 (net
)。
如果您要求您的应用在核心框架上 运行,则不能使用 SendGrid 8.0.5。您的选择包括(但不限于)使用 SendGrid.NetCore
或使用 MailKit
.
如果您的应用不需要 运行 在核心框架上,并且可以只支持完整框架 (net
),那么您可以使用 SendGrid 8.0.5。
对于我们自己的应用程序,我们选择使用 MailKit
版本 1.10.0
,因为它比 SendGrid.NetCore
更成熟并且支持核心框架。我们按如下方式使用它:
project.json
"dependencies": {
"MailKit": "1.10.0"
},
"frameworks": {
"netcoreapp1.1": {}
}
使用 SendGrid 和 MailKit 发送电子邮件。
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);
}