System.Net.Mail引用不存在

gth*_*der 5 c# system.net system.net.mail winforms

创建发送电子邮件的应用程序时遇到问题.

我已经有一个作为Windows窗体应用程序工作,然后决定从空项目中做同样的事情,因为我现在需要创建一个后台应用程序.

System.Net.Mail在Windows窗体中使用了名称空间.然后将相同的代码添加到新项目中.

但是,我收到以下错误:

命名空间"System.Net"中不存在类型或命名空间名称"Mail".

'System.Net'引用包含在项目引用列表中,我在可能的引用列表中找不到任何名为'System.Net.Mail'的内容.关键是我在Windows Forms应用程序中没有这些错误.

ean*_*son 9

我试图在Visual Studio 2012中重现这一点,但即使我设置编译器使用.NET 2.0我仍然没有遇到这个问题.

您可能缺少System.dll包含命名空间的引用System.Net.Mail.作为预防措施,因为您没有包含任何示例代码,我将包括一个简单的Mail客户端实现作为示例.

using (SmtpClient client = new SmtpClient("smtp-server.MyDomain.com"))
{
    client.UseDefaultCredentials = true;

    using (MailMessage mail = new MailMessage())
    {
        mail.Subject = subject;
        mail.Body = body;

        mail.From = new MailAddress("MyEmail@MyDomain.com");
        mail.To.Add("ToThisEmail@MyDomain.com");

        client.Send(mail);
    }
}
Run Code Online (Sandbox Code Playgroud)

即使我无法重现这一点,我仍然建议您验证您是否针对与之前客户端相同的目标框架编译项目.

您可以通过右键单击项目并Target frameworkApplication选项卡下选择来完成此操作.

编辑:可能值得截取当前引用的截图并在stackoverflow上传它.它将使我们更好地了解潜在的问题或冲突.

在此输入图像描述

应该没有必要修改你的App.config,但作为参考,你有我的.

<?xml version="1.0"?>
<configuration>
    <startup> 
    <supportedRuntime version="v2.0.50727"/></startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

EDIT2:

添加System.dll参考.

  1. 右键单击您的项目并选择Add Reference.
  2. 在and 下查找并添加System(或System.dll). AssembliesFramework
  3. 点击OK保存.