如何设置Windows桌面应用程序的AppId(通过InnoSetup)

时间:2020-04-12 16:12:23

标签: windows inno-setup

按照标题,如何设置本机Windows桌面应用程序的应用程序ID?

有关应用程序ID的文档很少,我还没有找到任何有关设置它的信息。

这里有Microsoft Docs,但其中提到了它的含义以及如何使用AppUserModelId的

我正在使用Inno Setup Compiler为我的桌面应用程序创建安装程序,并且将标志AppId设置为Inno Setup Compiler生成的GUID。

AppId={{6BE5E5E6-68BF-4AF7-A9E5-FF919709E86C}

我的理解是,当您运行安装程序时,Inno安装程序将设置AppId,但是当我运行此PowerShell代码段时,安装后我找不到我的应用程序(此代码段将AppId显示为{ {1}}):

IdentifyingNumber

一切都按我的应用程序预期进行。它可以启动,并且一切正常,但是我需要设置get-wmiobject Win32_Product -Filter "Name LIKE 'MyApp%'" 才能使我的Toast通知正确运行(通过wxWidgets)。

编辑:

我实际上所追求的是AppId,而不是AppUserModelId,具有讽刺意味的是,在我的问题中甚至提到过。

第二次编辑:

我了解到AppId是Inno Setup特有的,与Windows没有任何关系。正如我之前的编辑中提到的,我真正要寻找的是AppId,而我的问题变得更清楚了,该问题已被放到question中。

无论我可以使用Powershell片段查询某些应用程序并获得结果,我都觉得很有趣,但是对于我的应用程序却没有结果

1 个答案:

答案 0 :(得分:0)

根据AppID的文档,其中指出:

AppId还确定“卸载”注册表项的实际名称,Inno Setup最后在“ _is1”上添加该名称。 (因此,如果AppId为“ MyProgram”,则密钥将命名为“ MyProgram_is1”。)

对于您而言,注册表项将是:{6BE5E5E6-68BF-4AF7-A9E5-FF919709E86C}_is1

在我的计算机上,卸载注册表项在这里:

   HKEY_LOCAL_MACHINE\
             SOFTWARE\
          WOW6432Node\
            Microsoft\
              Windows\
        CurrentVersion\Uninstall\{...}_is1

它有两个注册表项,说明软件的位置:

  • InstallLocation
  • Inno Setup: App Path

但是它似乎没有说明可执行文件的名称。但是无论如何你都会知道。