一个在win 8.1上发出Toast通知的C#桌面应用程序在升级到win 10后停止发出Toast通知
我有一个c#桌面应用程序,它会引发Toast通知,它是使用visual studio 2013构建的。 在win 8.1上,一切正常,升级到win 10后,应用程序仍然可以工作,但Toast通知不再出现 我用于Toast通知的代码一个在win 8.1上发出Toast通知的C#桌面应用程序在升级到win 10后停止发出Toast通知,c#,toast,C#,Toast,我有一个c#桌面应用程序,它会引发Toast通知,它是使用visual studio 2013构建的。 在win 8.1上,一切正常,升级到win 10后,应用程序仍然可以工作,但Toast通知不再出现 我用于Toast通知的代码 ToastNotificationManager.CreateToastNotifier(_appId).Show(toast); 它提到: C:\Program Files(x86)\Windows Kits\8.1\References\CommonConfig
ToastNotificationManager.CreateToastNotifier(_appId).Show(toast);
它提到:
C:\Program Files(x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Windows.winmd
对于Windows.winmd引用,我在.csproj文件中添加了属性:8.1
这在windows 10上是否仍然有效?如果是这样的话,会有什么问题?我让它工作了,所以我将分享我的行动和未经证实的理论。 要使toast正常工作,它必须在开始屏幕上有一个快捷方式,并映射一个appId,然后创建一个toast通知程序,传递该appId:
ToastNotificationManager.CreateToastNotifier(_appId).Show(toast);
我删除了快捷方式,更改了appid,并重新创建了快捷方式,它成功了,也许仅仅更改appid就足够了。
我未经证实的理论:
原始代码也应该在windows 10上运行,问题在于升级。
快捷方式和appId是在win 8.1上创建的,在升级到win 10的过程中被更改\损坏,但仍然存在于某个地方(一些缓存、注册表…),这导致了问题,因此在升级后创建新的appId可以解决问题 你满足这些要求了吗?“对于要显示toast的桌面应用程序,该应用程序必须在开始屏幕上有一个快捷方式。该快捷方式必须有一个AppUserModelID。”是的,我使用了使用MS.WindowsAPICodePack.Internal创建它的示例,在win 8.1上还可以