我偶然发现我的桌面应用程序上的一个奇怪的错误,用c#,.NET 4.5编写,使用Windows Form。我已经实现了一个简单的NotifyIcon系统来监听特定的列表,并且对于添加的每个项目,它都会显示标题和描述。很直接。
它在调试过程中就像一个魅力,但是当我发布应用程序时,无论出于何种原因都不会显示任何通知。我在Windows10上错过了一些特别的许可吗?
这是EventHandler的代码
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
private void OnLogItemAdded(object sender, Utilities.ItemAddedEventArgs args)
{
Event e = (Event)args.item;
switch (e.eventType)
{
case EventType.Info:
MainNotifyIcon.BalloonTipIcon = ToolTipIcon.Info;
break;
case EventType.Error:
MainNotifyIcon.BalloonTipIcon = ToolTipIcon.Error;
break;
case EventType.Warning:
MainNotifyIcon.BalloonTipIcon = ToolTipIcon.Warning;
break;
default:
MainNotifyIcon.BalloonTipIcon = ToolTipIcon.Info;
break;
}
MainNotifyIcon.Visible = true;
MainNotifyIcon.BalloonTipTitle = e.Title;
MainNotifyIcon.BalloonTipText = e.Description;
MainNotifyIcon.ShowBalloonTip(3000);
}
就是这样,不涉及其他代码。
根据评论,应明确设置通知图标。我做到了但仍然没有结果。图标是项目中包含的资源图标
MainNotifyIcon.Icon = Properties.Resources.icon;
答案 0 :(得分:2)
我遇到了在调试模式下无效的相同问题。
如果您没有使用“Any CPU”或“x64”编译代码并在Windows 10 64位上部署%ProgramFiles%(而不是%ProgramFiles(x86)%!),那么Toast通知将永远不会出现。
但是它适用于非64位特定文件夹。
答案 1 :(得分:1)
.NET发布者创建的启动图标在C:\ Users \ USERNAME \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ PUBLISHER \ YOUR APP中创建某种快捷方式(称为应用程序引用)
使用此引用启动应用程序时,通知不起作用。不知道为什么(bug?)但是当你使用.exe启动它时问题就消失了,你可以在这里找到它: C:\ Users \ USERNAME \ AppData \ Local \ Apps \ 2.0 \ ID \ ID \ ID \ YOUR APP.exe