NotifyIcon Windows 10 适用于调试,但不适用于发布

Cla*_*tta 5 .net c# winforms windows-10

我在我的桌面应用程序中偶然发现了一个奇怪的错误,它是用 c#、NET 4.5 编写的,使用 Windows 窗体。我已经实现了一个简单的 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);
    }
Run Code Online (Sandbox Code Playgroud)

就是这样,不涉及其他代码。

根据评论,应明确设置通知图标。我做到了,但仍然没有结果。Icon是项目中包含的资源图标

MainNotifyIcon.Icon = Properties.Resources.icon;
Run Code Online (Sandbox Code Playgroud)

San*_*r88 1

.NET 发布者创建的启动图标在 C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\PUBLISHER\YOUR APP 中创建某种快捷方式(称为应用程序引用)

当您使用此引用启动应用程序时,通知不起作用。不知道为什么(错误?),但当您使用 .exe 启动它时问题就消失了,您可能可以在此处找到它:C:\Users\USERNAME\AppData\Local\Apps\2.0\ID\ID\ID\你的应用程序.exe