Service 通过系统服务卸载msi包失败:由于客户端源不同步,源无效(产品代码相同)

Service 通过系统服务卸载msi包失败:由于客户端源不同步,源无效(产品代码相同),service,installation,wix,Service,Installation,Wix,我使用WIX3.7编写了一个安装程序,我将安装一个c#system服务,并尝试使用msiexec-x{product#u code}-quiet重新安装软件。我的操作系统是Win8 我首先通过UI安装软件,过了一会儿,服务将创建一个新进程并开始调用msiexec,但失败了。 你能帮我吗?我已经挣扎了很长时间了! 非常感谢 我的日志如下: MSI (s) (7C:80) [00:22:01:708]: Warning: The package code in the cached package

我使用WIX3.7编写了一个安装程序,我将安装一个c#system服务,并尝试使用msiexec-x{product#u code}-quiet重新安装软件。我的操作系统是Win8 我首先通过UI安装软件,过了一会儿,服务将创建一个新进程并开始调用msiexec,但失败了。 你能帮我吗?我已经挣扎了很长时间了! 非常感谢

我的日志如下:

MSI (s) (7C:80) [00:22:01:708]: Warning: The package code in the cached package 'C:\windows\Installer\134f7d5.msi' does not match the registered package code.  Cached       
MSI (s) (7C:80) [00:22:01:724]: SOURCEMGMT: Source is invalid due to client source out of sync (product code is the same).

服务和新进程运行在哪个帐户下?默认帐户(例如LocalSystem)可能没有访问msi信息的权限。

服务和新进程运行的帐户是什么?默认帐户(例如LocalSystem)可能没有访问msi信息的权限。

该消息表示安装的软件包具有相同的
ProductCode
(通过
Product/@Id
属性设置),但不是相同的软件包。如果您安装一个软件包,重新生成它(这样新的软件包就会得到一个新的“软件包代码”),然后尝试使用重新生成的软件包卸载,通常会发生这种情况。如果在卸载过程中出现导致源解析的问题,并且Windows安装程序在需要旧包的位置找到新重建的包,也可能发生这种情况

要解除锁定,请尝试使用较新的软件包重新缓存/重新安装,然后卸载:

msiexec /fv path\to\your.msi /l*v install.txt /qb
msiexec /x path\to\your.msi /l*v uninstall.txt /qb
之后,再次测试您的场景,而不更改更新之间的MSI。您将逐渐能够跟踪系统中发生的变化,这些变化使Windows安装程序感到困惑和不快


祝你好运

该消息表示安装的软件包具有相同的
ProductCode
(通过
Product/@Id
属性设置),但不是相同的软件包。如果您安装一个软件包,重新生成它(这样新的软件包就会得到一个新的“软件包代码”),然后尝试使用重新生成的软件包卸载,通常会发生这种情况。如果在卸载过程中出现导致源解析的问题,并且Windows安装程序在需要旧包的位置找到新重建的包,也可能发生这种情况

要解除锁定,请尝试使用较新的软件包重新缓存/重新安装,然后卸载:

msiexec /fv path\to\your.msi /l*v install.txt /qb
msiexec /x path\to\your.msi /l*v uninstall.txt /qb
之后,再次测试您的场景,而不更改更新之间的MSI。您将逐渐能够跟踪系统中发生的变化,这些变化使Windows安装程序感到困惑和不快


祝你好运

谢谢你的回复。我理解你的建议,但实际上,我没有构建一个更新的软件包,我的服务只是通过指定产品代码调用msiexec.exe来卸载我的软件,从部分日志中,我可以看到系统确实找到了msi文件,但它认为缓存的msi是更新的,阻止卸载谢谢你的回复。我理解你的建议,但实际上,我没有构建更新的软件包,我的服务只是通过指定产品代码调用msiexec.exe卸载我的软件,从日志的一部分,我可以看到系统确实找到了msi文件,但它认为缓存的msi是更新的,阻止卸载我使用WiX中的元素安装新系统,从services.msc的结果中,我可以看到该服务在本地系统帐户下运行。系统帐户应该具有最高权限,因此我希望它可以卸载软件,但失败了。我使用WiX中的元素安装新系统,从services.msc的结果中,我可以看到服务是在本地系统帐户下运行的。系统帐户应该具有最高权限,因此我希望它可以卸载软件,但它失败了。