windows - 由于不正确的 MSI 检索,补丁程序删除一直失败

标签 windows wix windows-installer patch

我有一个包,您可以使用 MSI 安装它。此包的安装日志在执行 msiexec 命令时显示以下属性:

Property(S): DATABASE = C:\Windows\Installer\2bb7bb.msi
Property(S): OriginalDatabase = C:\temp\DDS_COM_ETMS_Win-2008-64_01-04-01_install_09\ElektronTMS.msi
Property(S): UILevel = 2
Property(S): ACTION = INSTALL
Property(S): ROOTDRIVE = D:\
Property(S): CostingComplete = 1
Property(S): OutOfDiskSpace = 0
Property(S): OutOfNoRbDiskSpace = 0
Property(S): PrimaryVolumeSpaceAvailable = 0
Property(S): PrimaryVolumeSpaceRequired = 0
Property(S): PrimaryVolumeSpaceRemaining = 0
Property(S): INSTALLLEVEL = 1
Property(S): SOURCEDIR = C:\temp\DDS_COM_ETMS_Win-2008-64_01-04-01_install_09\
Property(S): SourcedirProduct = {7F03FFFD-D865-41D1-B4B5-B787F52336D8}

现在,我为这个包安装了一个补丁,我尝试执行补丁的卸载/回退,但我立即发现它使用了错误的包(原始包 msi 的缓存副本位于 C:\Windows\Installer\,它是 2bb7bb.msi)。

=== Verbose logging started: 18/12/2015  14:58:05  Build type: SHIP UNICODE 5.00.7601.00  Calling process: C:\Windows\SysWOW64\msiexec.exe ===
MSI (c) (04:A8) [14:58:05:290]: Resetting cached policy values
MSI (c) (04:A8) [14:58:05:290]: Machine policy value 'Debug' is 0
MSI (c) (04:A8) [14:58:05:290]: ******* RunEngine:
           ******* Product: {7F03FFFD-D865-41D1-B4B5-B787F52336D8}
           ******* Action: 
           ******* CommandLine: **********
MSI (c) (04:A8) [14:58:05:290]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (04:A8) [14:58:05:290]: Grabbed execution mutex.
MSI (c) (04:A8) [14:58:05:526]: Cloaking enabled.
MSI (c) (04:A8) [14:58:05:526]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (04:A8) [14:58:05:536]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (08:E0) [14:58:05:553]: Running installation inside multi-package transaction {7F03FFFD-D865-41D1-B4B5-B787F52336D8}
MSI (s) (08:E0) [14:58:05:553]: Grabbed execution mutex.
MSI (s) (08:EC) [14:58:05:555]: Resetting cached policy values
MSI (s) (08:EC) [14:58:05:555]: Machine policy value 'Debug' is 0
MSI (s) (08:EC) [14:58:05:555]: ******* RunEngine:
           ******* Product: {7F03FFFD-D865-41D1-B4B5-B787F52336D8}
           ******* Action: 
           ******* CommandLine: **********
MSI (s) (08:EC) [14:58:05:556]: Machine policy value 'DisableUserInstalls' is 0
MSI (s) (08:EC) [14:58:05:578]: SRSetRestorePoint skipped for this transaction.
MSI (s) (08:EC) [14:58:05:579]: End dialog not enabled
MSI (s) (08:EC) [14:58:05:579]: Original package ==> C:\Windows\Installer\2bb7c2.msi
MSI (s) (08:EC) [14:58:05:579]: Package we're running from ==> C:\Windows\Installer\2bb7c2.msi
MSI (s) (08:EC) [14:58:05:580]: APPCOMPAT: Uninstall Flags override found.
MSI (s) (08:EC) [14:58:05:580]: APPCOMPAT: Uninstall VersionNT override found.
MSI (s) (08:EC) [14:58:05:580]: APPCOMPAT: Uninstall ServicePackLevel override found.
MSI (s) (08:EC) [14:58:05:589]: APPCOMPAT: looking for appcompat database entry with ProductCode '{7F03FFFD-D865-41D1-B4B5-B787F52336D8}'.
MSI (s) (08:EC) [14:58:05:601]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (08:EC) [14:58:05:612]: MSCOREE not loaded loading copy from system32
MSI (s) (08:EC) [14:58:05:625]: Opening existing patch 'C:\Windows\Installer\fb55f.msp'.

这会导致问题...

MSI (s) (08:EC) [14:58:07:626]: Resolving source.
MSI (s) (08:EC) [14:58:07:626]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (08:EC) [14:58:07:626]: User policy value 'DisableMedia' is 0
MSI (s) (08:EC) [14:58:07:626]: Machine policy value 'AllowLockdownMedia' is 0
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Media enabled only if package is safe.
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Looking for sourcelist for product {7F03FFFD-D865-41D1-B4B5-B787F52336D8}
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Adding {7F03FFFD-D865-41D1-B4B5-B787F52336D8}; to potential sourcelist list (pcode;disk;relpath).
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Now checking product {7F03FFFD-D865-41D1-B4B5-B787F52336D8}
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Media is enabled for product.
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Attempting to use LastUsedSource from source list.
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Trying source C:\temp\DDS_COM_ETMS_Win-2008-64_01-04-01_install_09\.
MSI (s) (08:EC) [14:58:07:626]: Note: 1: 2203 2: C:\temp\DDS_COM_ETMS_Win-2008-64_01-04-01_install_09\ElektronTMS.msi 3: -2147287037 
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (08:EC) [14:58:07:626]: Note: 1: 1706 2: -2147483647 3: ElektronTMS.msi 
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Processing net source list.
MSI (s) (08:EC) [14:58:07:626]: Note: 1: 1706 2: -2147483647 3: ElektronTMS.msi 
MSI (s) (08:EC) [14:58:07:626]: SOURCEMGMT: Processing media source list.
MSI (s) (08:EC) [14:58:07:627]: Note: 1: 2203 2:  3: -2147287037 
MSI (s) (08:EC) [14:58:07:627]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (08:EC) [14:58:07:627]: Note: 1: 1706 2: -2147483647 3: ElektronTMS.msi 
MSI (s) (08:EC) [14:58:07:627]: SOURCEMGMT: Processing URL source list.
MSI (s) (08:EC) [14:58:07:627]: Note: 1: 1402 2: UNKNOWN\URL 3: 2 
MSI (s) (08:EC) [14:58:07:627]: Note: 1: 1706 2: -2147483647 3: ElektronTMS.msi 
MSI (s) (08:EC) [14:58:07:627]: Note: 1: 1706 2:  3: ElektronTMS.msi 
MSI (s) (08:EC) [14:58:07:627]: SOURCEMGMT: Failed to resolve source
MSI (s) (08:EC) [14:58:07:627]: Note: 1: 2205 2:  3: Error 

有谁知道为什么它使用不同的 C:\Windows\Installer\XXX.msi 文件?它应该使用原始文件,然后使用它重新安装原始 DLL,但由于某种原因,它使用 2bb7c2.msi 而不是 2bb7bb.msi(不存在),但 2bb7c2.msi 是原始补丁,而 2bb7bb.msi 是一直是原包微星。

最佳答案

基本问题是您是从临时位置安装的,补丁卸载需要访问原始 MSI 才能恢复以前的文件。在没有任何其他显示实际错误的情况下,它不会比这更复杂。它需要原始 MSI 文件,以及所需的 PackageCode、ProductCode 等,但它似乎丢失或不匹配,或者 Windows 失去了访问该文件的权限(如果它实际上存在)。

关于windows - 由于不正确的 MSI 检索,补丁程序删除一直失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34360936/

相关文章:

windows - 将 Eclipse 配置为 Go IDE

windows - 如何在 Windows 中找到删除/移动给定文件的进程

php - 在 Windows 8.1 上安装 Apache、PHP、MySQL - Apache 无法启动 - 请求的操作失败

wix - 如何使用 Wix 3.11 检查 .net framework 4.7.1

Wix:如何限制对主要版本号的主要升级?

wix - 使 WiX Bootstrapper 可用于使用 .NET 4.0 进行引导

WiX RemoveFolderEx 不起作用?

java - Powershell 比较数组以检查 GUID

c++ - : file. h 与 file.cxx 中的函数实现

c# - 高级安装程序,通过命令行使用标志/参数调用我的自定义 MSI?