NotifyIcon Windows 10适用于Debug但不适用于Publish

时间:2015-09-21 15:44:31

标签: c# .net winforms windows-10

我偶然发现我的桌面应用程序上的一个奇怪的错误,用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;

2 个答案:

答案 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