Problem mit NotifyIcon, das in der Winforms-App nicht verschwindet

Ich habe eine .Net 3.5 C # Winforms-App. Es hat keine GUI als solche, nur ein NotifyIcon mit einem ContextMenu.

Ich habe versucht, das NotifyIcon auf visible = false zu setzen und es im Application_Exit-Ereignis wie folgt zu entsorgen:

        if (notifyIcon != null)
        {
            notifyIcon.Visible = false;
            notifyIcon.Dispose();
        }

Die App erhält den Code in Klammern, löst jedoch eine Nullreferenz-Ausnahme aus, wenn versucht wird, Visible = false festzulegen.

Ich habe an einigen Stellen gelesen, um es in das Formular-Abschlussereignis einzufügen, aber dieser Code wird nie getroffen (vielleicht, weil ich kein Formular als solches zeige?).

Wo kann ich diesen Code platzieren, damit er tatsächlich funktioniert? Wenn ich es nicht einlege, erscheint das nervige Symbol in der Taskleiste, bis Sie mit der Maus darüber fahren.

Prost.

BEARBEITEN

Nur etwas extra ist mir aufgefallen ...........

Ich verwende ClickOnce in der App ......... Wenn ich die App nur über das ContextMenu auf dem NotifyIcon beende, wird keine Ausnahme protokolliert.

Nur wenn das Application_Exit-Ereignis ausgelöst wird, nachdem die Anwendung hier nach einem Upgrade gesucht hat.

private void CheckForUpdate()
{
    EventLogger.Instance.LogEvent("Checking for Update");
    if (ApplicationDeployment.IsNetworkDeployed && ApplicationDeployment.CurrentDeployment.CheckForUpdate())
    {
        EventLogger.Instance.LogEvent("Update available - updating");
        ApplicationDeployment.CurrentDeployment.Update();
        Application.Restart();
    }
}

Hilft das?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage