У меня есть приложение .NET 3.5 С# Winforms. Он не имеет графического интерфейса, как такового, просто NotifyIcon с ContextMenu.
Я попытался установить NotifyIcon на visible = false и удалить его в событии Application_Exit следующим образом:
if (notifyIcon != null)
{
notifyIcon.Visible = false;
notifyIcon.Dispose();
}
Приложение получает код внутри скобок, но генерирует исключение null ref, когда пытается установить Visible = false.
Я прочитал в нескольких местах, чтобы поместить его в событие закрытия формы, но этот код никогда не попадает (возможно, поскольку у меня нет формы, отображающей как таковой).
Где я могу поместить этот код, чтобы он действительно работал? Если я его не вставляю, я получаю раздражающую затяжную иконку в лотке, пока вы не нажмете на нее мышь.
Приветствия.
ИЗМЕНИТЬ
Просто что-то лишнее я заметил...........
Я использую ClickOnce в приложении......... если я просто выхожу из приложения через ContextMenu в NotifyIcon, исключение не регистрируется.
Просто, когда событие Application_Exit запущено после того, как приложение выполнило проверку на обновление здесь.
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();
}
}
Помогает ли это?