1

我使用 WiX 3.7 编写安装程序,我将安装 ac# 系统服务将尝试重新安装软件,使用 msiexec -x {product_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).
4

2 回答 2

1

服务是什么帐户,因此新进程在什么帐户下运行?默认帐户(例如 LocalSystem)可能无权访问 msi 信息。

于 2013-04-19T18:07:35.233 回答
0

该消息意味着安装了相同的包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 安装程序感到困惑和不满意的变化。

祝你好运!

于 2013-04-19T18:43:44.043 回答