我在创建发送电子邮件的应用程序时遇到问题。
我已经有一个作为Windows窗体应用程序工作,然后决定从空项目中执行相同操作,因为我现在需要创建一个后台应用程序。
我在Windows窗体中使用了System.Net.Mail
命名空间。然后将相同的代码添加到新项目中。
但是,我收到以下错误:
名称空间中不存在类型或命名空间名称“Mail” 'System.Net'。
'System.Net'引用包含在项目引用列表中,我在可能的引用列表中找不到任何名为'System.Net.Mail'的内容。关键是我在Windows Forms应用程序中没有这些错误。
答案 0 :(得分:8)
我尝试在Visual Studio 2012中重现这一点,但即使我将编译器设置为使用.NET 2.0
,我仍然没有遇到此问题。
您可能缺少包含命名空间System.dll
的{{1}}的引用。作为一项预防措施,因为您没有包含任何示例代码,我将以Mail客户端的简单实现为例。
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 framework
来执行此操作。
编辑:可能值得截取您当前的参考资料并在stackoverflow上传。它将使我们更好地了解潜在的问题或冲突。
不需要修改Application
,但作为参考,你有我的。
App.config
<强> EDIT2:强>
添加<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/></startup>
</configuration>
参考。
System.dll
。 Add Reference
和System
下查找并添加System.dll
(或Assemblies
)。 Framework
进行保存。答案 1 :(得分:0)
我遇到了同样的问题。以下更改解决了我的问题。 从.Net Framework 4 Client Profile将目标框架更改为.Net Framework 4。
Client Profile框架会产生许多此类问题。