5

メールを送信するアプリケーションの作成に問題があります。

私はすでにWindowsフォームアプリケーションとして機能しているものを持っていますが、今はバックグラウンドアプリケーションを作成する必要があるため、空のプロジェクトから同じことを行うことにしました。

System.Net.Mailそのために、Windowsフォームで名前空間を使用しました。次に、同じコードを新しいプロジェクトに追加しました。

ただし、次のエラーが発生します。

タイプまたは名前空間の名前「Mail」は、名前空間「System.Net」に存在しません。

'System.Net'参照はプロジェクト参照リストに含まれており、可能な参照のリストに'System.Net.Mail'という名前のものが見つかりません。重要なのは、Windowsフォームアプリでこれらのエラーが発生しなかったことです。

4

2 に答える 2

9

これをVisualStudio2012で再現しようとしましたが、コンパイラを使用するように設定しても、.NET 2.0この問題は発生しませんでした。

System.dll名前空間を含む参照が欠落している可能性があります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、タブの下を選択しApplicationます。

編集:現在の参照のスクリーンショットを撮り、stackoverflowでここにアップロードする価値があるかもしれません。それは私たちに潜在的な問題や対立のより良い概観を与えるでしょう。

ここに画像の説明を入力してください

あなたのを変更する必要はないはずApp.configですが、ここでの参照としてあなたは私のものを持っています。

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

Edit2:

参照を追加しSystem.dllます。

  1. プロジェクトを右クリックして、を選択しますAdd Reference
  2. およびの下にSystem(またはSystem.dll)を見つけて追加します。 AssembliesFramework
  3. クリックOKして保存します。
于 2013-03-22T01:54:12.270 に答える
0

私は同じ問題に直面しました。以下の変更で私の問題は解決しました。ターゲットフレームワークを.NetFramework4クライアントプロファイルから.NetFramework4に変更します。

クライアントプロファイルフレームワークは、そのような多くの問題を引き起こします。

于 2013-10-30T10:26:25.960 に答える