Wix 复发性自愈;msi安装程序事件1001
我有一个已安装的产品,不知何故进入了一种状态,在这种状态下,广告的快捷方式将触发自我修复两次,然后退出。这一切过去都很好,但现在卸载也不会删除文件,我似乎无法回到一个干净的状态 触发自愈时,会出现MSIInstall 1001警告事件:Wix 复发性自愈;msi安装程序事件1001,wix,windows-installer,Wix,Windows Installer,我有一个已安装的产品,不知何故进入了一种状态,在这种状态下,广告的快捷方式将触发自我修复两次,然后退出。这一切过去都很好,但现在卸载也不会删除文件,我似乎无法回到一个干净的状态 触发自愈时,会出现MSIInstall 1001警告事件:在请求组件“{789CBE30-0F16-46CA-BA06-464AD61A458E}”期间检测到产品“{79D7389C-5858-48EE-B250-E84E789F8683}”,功能“CurrentUser”失败。 组件GUID是我的MainExe组件:
在请求组件“{789CBE30-0F16-46CA-BA06-464AD61A458E}”期间检测到产品“{79D7389C-5858-48EE-B250-E84E789F8683}”,功能“CurrentUser”失败。
组件GUID是我的MainExe组件:
<Component Id="MainExe" Guid="{789CBE30-0F16-46CA-BA06-464AD61A458E}">
<File Id="MyProgram.exe" Name="MyProgram.exe" Source="MyProgram.exe" KeyPath="yes" />
<Shortcut Id="StartMenuShortcut" Name="My Program" Directory="StartMenuDir" Icon="Icon.exe" IconIndex="0" Advertise="yes" WorkingDirectory="APPLICATIONROOTDIRECTORY" />
<Shortcut Id="DesktopShortcut" Name="My Program" Directory="DesktopFolder" Icon="Icon.exe" IconIndex="0" Advertise="yes" WorkingDirectory="APPLICATIONROOTDIRECTORY" />
</Component>
但修复的MSI日志显示:
MSI (s) (CC:EC) [10:47:50:769]: Feature: CurrentUser; Installed: Advertise; Request: Local; Action: Local
MSI (s) (CC:EC) [10:47:50:770]: Feature: CoreFiles; Installed: Advertise; Request: Local; Action: Local
MSI (s) (CC:EC) [10:47:50:770]: Feature: InstallerUI; Installed: Advertise; Request: Local; Action: Local
MSI (s) (CC:EC) [10:47:50:770]: Component: MainExe; Installed: Absent; Request: Local; Action: Local; Client State: Unknown
我尝试运行,但它告诉我:
$ cscript.exe //nologo Unadvertise.wsf /ProductCode:{79D7389C-5858-48EE-B250-E84E789F8683}
Checking if product {79D7389C-5858-48EE-B250-E84E789F8683} is installed
Product {79D7389C-5858-48EE-B250-E84E789F8683} is installed as AAA My Program
Checking for advertised features in product {79D7389C-5858-48EE-B250-E84E789F8683}
Found feature CurrentUser : Local
Found feature CoreFiles : Local
Found feature InstallerUI : Local
Product {79D7389C-5858-48EE-B250-E84E789F8683} does not have advertised features
如何诊断问题,或至少清理此产品的状态?同样,现在卸载不会删除文件,也不会解决问题。如果没有其他帮助,您始终可以手动删除应用程序(例如,删除所有属于的文件和快捷方式),并使用(更新版本的Windows上不推荐、不支持和不安全的工具,2017年8月)更正安装程序数据库
然后再次安装MSI并检查错误是否依然存在,如果仍然存在,MSI本身就有问题。我认为我犯的错误是使用了,它与相同或类似,可能会使您的MSI数据库无效
放弃了尝试修复我的机器,现在我在虚拟机中进行所有MSI测试 写了下面的答案后,我发现我以前也回答过类似的问题我认为影响您的软件包的问题是,有一个密钥路径设置为安装到userprofile的文件。请参阅此处的完整详细信息:。我将留下下面的答案作为解释问题的另一种方式
此应用程序的名称是什么?由于组件的键路径设置为空文件夹,而不是文件的完整路径,因此会出现周期性自我修复的情况。Windows Installer倾向于删除空文件夹,除非为MSI中的文件夹添加CreateFolder条目。很可笑,但这就是技术的工作原理 我已经好几年没有看到这个问题了,但大致情况是这样的:
- C:\Users\User\MyFile.ini
- C:\Users\AnotherUser\MyFile.ini
关于自愈问题,这里有一个很好的全面解释:您是否执行了升级?可能就是在MigrateFeatureState标准操作期间,该功能按照播发的方式安装,继承了以前版本的功能安装状态。关于清理机器,这可能很棘手,没有确切的解决方案,通常我在虚拟机上进行测试,以便在软件包损坏时轻松恢复快照。MSIZAP或多或少是我陷入这一困境的原因。是的,似乎大多数MSI清理工具现在都不推荐使用。我认为截至2017年8月,唯一可以尝试的工具是:
$ cscript.exe //nologo Unadvertise.wsf /ProductCode:{79D7389C-5858-48EE-B250-E84E789F8683}
Checking if product {79D7389C-5858-48EE-B250-E84E789F8683} is installed
Product {79D7389C-5858-48EE-B250-E84E789F8683} is installed as AAA My Program
Checking for advertised features in product {79D7389C-5858-48EE-B250-E84E789F8683}
Found feature CurrentUser : Local
Found feature CoreFiles : Local
Found feature InstallerUI : Local
Product {79D7389C-5858-48EE-B250-E84E789F8683} does not have advertised features