【问题标题】:Get GUID from an installed Application c#从已安装的应用程序 c# 获取 GUID
【发布时间】:2014-01-23 02:52:24
【问题描述】:

我正在做一个 Winform 应用程序,需要卸载由 installshield 安装的另一个 Winform 应用程序。我已经搜索了正确的卸载方法是

Process.Start("msiexec /x {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"); 其中 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 代表您要卸载的应用程序的 GUID。

但我不知道如何从名为 text.exe 的应用程序中找到 GUID

我找到了

var assembly = typeof(Program).Assembly; var 属性 = (GuidAttribute)assembly.GetCustomAttributes(typeof(GuidAttribute), true)[0]; var id = attribute.Value;

但这会从当前应用程序中检索GUID

有什么想法吗?

【问题讨论】:

  • 您需要在注册表中找到它。请注意,我会手动执行此操作并将您找到的 GUID 添加到您的程序中,而不是尝试以编程方式从可执行文件名称中找到它。与可执行文件名发生冲突的可能性太大。

标签: c# winforms guid


【解决方案1】:

那个 GUID 是与安装程序关联的 GUID(更准确地说是 Package Code),您可以从 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 中提取这些,我不熟悉能够直接从应用程序中提取它。

*编辑 或者,如果您有权访问 WiX 脚本(如果您使用 WiX 生成 MSI),它应该是 Product 元素的 Id 属性。您还可以使用 Orca 等工具来检查已创建的 MSI 的此属性。

【讨论】:

  • 如果它是 64 位操作系统上的 32 位程序,您也可以检查 Wow6432Node。所以HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
猜你喜欢
  • 2017-04-30
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多