【发布时间】:2013-06-24 11:12:16
【问题描述】:
为了安装/卸载/更新我们的软件,我们的自定义安装程序使用WindowsInstaller.Installer.Products 从 Windows 注册表中获取已安装产品的列表。
在某些客户端计算机上,未知软件可能正在向注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products”添加一个新条目,该条目的名称类似于“ABCD”。这导致WindowsInstaller.Installer.Products 抛出异常。我可以通过手动将注册表项添加到名为“test”的“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products”中来重新创建此方案。如果我将 test 重命名为新的 GUID,那么模拟的问题就会得到解决。
您能否提出任何可能的解决方法/解决方案?
使用 MSIINV.exe 工具会很困难,因为它是第 3 方工具,但这似乎有帮助。
【问题讨论】:
-
查看 WiX DTF 中的 MSI 互操作库(如下)。这比尝试将 COM 互操作与 WindowsInstaller.Installer 一起使用更容易、更简洁。
标签: c# .net installation registry windows-installer