故障排除幻影Windows安装依赖项
我遇到了一个问题,显然是一台PC(运行Windows 10 Enterprise)的问题,我正在开发的WiX安装程序无法正确卸载 安装程序是一个捆绑包,包括我们自己的两个MSI,SQL Server Express 2019和.NET Framework 4.7.2(在本例中,后者没有安装,因为它已经存在)。捆绑包安装正确,但卸载时无法删除我们的两个MSI,并在日志中报告以下情况:故障排除幻影Windows安装依赖项,windows,wix,windows-installer,installation,Windows,Wix,Windows Installer,Installation,我遇到了一个问题,显然是一台PC(运行Windows 10 Enterprise)的问题,我正在开发的WiX安装程序无法正确卸载 安装程序是一个捆绑包,包括我们自己的两个MSI,SQL Server Express 2019和.NET Framework 4.7.2(在本例中,后者没有安装,因为它已经存在)。捆绑包安装正确,但卸载时无法删除我们的两个MSI,并在日志中报告以下情况: Will not uninstall package: XYZ, found dependents: 1 Foun
Will not uninstall package: XYZ, found dependents: 1
Found dependent: {0aab0314-39c3-435d-8fc7-747b0db56cc4}, name: Unknown
安装后立即查看注册表(HKEY_CLASSES_ROOT\Installer\Dependencies),有三个条目(不包括SQL Server)——一个用于我们的捆绑包,一个用于我们的两个MSI。捆绑包有一个依赖项—自身—两个MSI各自有两个依赖项—捆绑包和神秘GUID(0aab0314-…)。神秘GUID在多个安装-卸载周期中保持不变
我从上到下搜索了注册表,没有找到对该GUID的任何其他引用;我还尝试在C:\ProgramData\Package缓存中查找,但也没有在那里找到它。我已经使用dark.exe来反编译包和两个MSI,然后用于搜索所有400多个文件,但没有用。我只能使用Microsoft的cleanup tool()在这台机器上成功地完全卸载我们的软件,我不知道如何完全解决这个问题
有什么想法可能导致这个或其他地方,我可以搜索尝试解决它?不幸的是,我对MSI和WiX的了解很少,而且几乎完全是在这个特定项目的过程中获得的。现在无法了解这一点,但有一个链接:。这可能是您开发包的PC?尝试使用上面链接中的VBScript生成产品代码列表,并查看是否与报告的GUID匹配。可能不会,但试试看。捆绑包本身有guid(不仅仅是msi),我在这方面还不是很精通。稍后将查看,或者Chris Painter可能完全知道这一点。您不必通过搜索来在注册表中找到GUID。通常情况下,它们被包装或压缩在那里。打包和压缩的guid:,。如果所讨论的系统是您开发包的地方,请确保在虚拟机上进行测试。开发系统经常由于开发“灾难”和实验而处于“肮脏状态”——这一点您无疑是知道的。有可能这些问题不是“真实的”,因为它们不会在野外发生,而只会在那个盒子上发生。专注于测试现实世界中的使用情况并寻找问题。要测试的多种模式:
新安装
,修复
,修改
,卸载
,主要升级
,次要升级
。更多涉及的模式:补丁
,回滚
,自我修复
。感谢您在@SteinÅsmul发表的所有有用评论-这发生在一台(相对)干净的机器上,我们仅用于测试部署。但是,在尝试对问题进行故障排除的过程中,它现在已停止发生,安装程序再次完全按照预期执行。我希望这台机器最终会以某种方式进入一种奇怪的状态,我在重复的安装/卸载周期中意外地修复了它,但我们将看到:-/