5

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

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

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

但是,我收到以下错误:

名称空间“System.Net”中不存在类型或名称空间名称“Mail”。

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

4

2 回答 2

9

我试图在 Visual Studio 2012 中重现此问题,但即使我将编译器设置为使用,.NET 2.0我仍然没有遇到此问题。

您可能缺少System.dll包含 namespace的引用System.Net.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);
    }
}

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

您可以通过右键单击您的项目并Target frameworkApplication选项卡下选择来执行此操作。

编辑:可能值得截取您当前参考的屏幕截图并将其上传到 stackoverflow。这将使我们更好地了解潜在的问题或冲突。

在此处输入图像描述

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

<?xml version="1.0"?>
<configuration>
    <startup> 
    <supportedRuntime version="v2.0.50727"/></startup>
</configuration>

编辑2:

添加System.dll参考。

  1. 右键单击您的项目并选择Add Reference.
  2. 在和下查找并添加System(或System.dll)。 AssembliesFramework
  3. 点击OK保存。
于 2013-03-22T01:54:12.270 回答
0

我遇到了同样的问题。以下更改解决了我的问题。将目标框架从 .Net Framework 4 客户端配置文件更改为 .Net Framework 4。

Client Profile 框架产生了许多这样的问题。

于 2013-10-30T10:26:25.960 回答