我有一个WPF应用程序,它有两个版本,一个是beta
,另一个是stable
。
用户可以同时安装这两个程序,每个程序都位于%localappdata%
(%localappdata%\app-name
和%localappdata%\app-name (beta)
)中自己的文件夹中。
当它们同时安装时,Windows会在任务栏上将它们分组,就好像是同一个应用程序一样。
因此,这两个应用程序不是二进制的,它们驻留在不同的目录中,也没有相同的标题。但很明显,这两个应用程序之间共享了一条信息,Windows使用这条信息来确定如何对应用程序进行分组,但我不知道这条信息是什么。
我需要为其中一个更改的那条信息是什么,以便Windows能够正确区分它们,从而每个都有自己的任务栏项?
2条答案
按热度按时间np8igboo1#
程序集信息中的GUID:
应为每个版本https://learn.microsoft.com/en-us/dotnet/api/system.guid.newguid?view=net-7.0创建不同的GUID
0sgqnhkj2#
任务栏分组基于Application User Model IDs (AppUserModelIDs)。如果您不指定,Windows将使用未记录的详细信息为您生成一个。
您可以p/invoke
SetCurrentProcessExplicitAppUserModelID
为整个流程设置一个特定的,也可以为每个窗口设置一个。