0

这是这个问题的后续,通过在本地驱动器上找到安装包来解决。

不幸的是,似乎在某些机器上,这并不能解决它。

我有以下可用日志

=== Verbose logging started: 03.07.2013  23:17:03  Build type: SHIP UNICODE 4.05.6001.00  Calling process: C:\WINDOWS\system32\msiexec.exe ===
Resetting cached policy values
Machine policy value 'Debug' is 0
******* RunEngine:
       ******* Product: C:\myInstallation.msi
       ******* Action: 
       ******* CommandLine: **********
Machine policy value 'DisableUserInstalls' is 0
User policy value 'SearchOrder' is 'nmu'
User policy value 'DisableMedia' is 0
Machine policy value 'AllowLockdownMedia' is 1
SOURCEMGMT: Looking for sourcelist for product {88D5305B-8FC3-4197-8482-5383FC7683ED}
SOURCEMGMT: Adding {88D5305B-8FC3-4197-8482-5383FC7683ED}; to potential sourcelist list (pcode;disk;relpath).
SOURCEMGMT: Now checking product {88D5305B-8FC3-4197-8482-5383FC7683ED}
SOURCEMGMT: Attempting to use LastUsedSource from source list.
SOURCEMGMT: Trying source C:\Documents and Settings\user123\Local Settings\Temporary Internet Files\Content.IE5\FALCNH9A\.
Note: 1: 2203 2: C:\Documents and Settings\user123\Local Settings\Temporary Internet Files\Content.IE5\FALCNH9A\myInstallation[1].msi 3: -2147287037 
SOURCEMGMT: Source is invalid due to missing/inaccessible package.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing net source list.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing media source list.
Note: 1: 2203 2:  3: -2147287037 
SOURCEMGMT: Source is invalid due to missing/inaccessible package.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing URL source list.
Note: 1: 1402 2: UNKNOWN\URL 3: 2 
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
Note: 1: 1706 2:  3: myInstallation[1].msi 
User policy value 'SearchOrder' is 'nmu'
SOURCEMGMT: Prompting user for a valid source.
Machine policy value 'DisableBrowse' is 0
Machine policy value 'AllowLockdownBrowse' is 0
SOURCEMGMT: Browsing is enabled.
Font created.  Charset: Req=0, Ret=0, Font: Req=, Ret=Arial
SOURCEMGMT: Now checking product {88D5305B-8FC3-4197-8482-5383FC7683ED}
SOURCEMGMT: Attempting to use LastUsedSource from source list.
Note: 1: 1706 2:  3: myInstallation[1].msi 
SOURCEMGMT: Processing net source list.
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
SOURCEMGMT: Processing media source list.
SOURCEMGMT: Trying media source ;.
Note: 1: 1706 2:  3: myInstallation[1].msi 
SOURCEMGMT: Processing URL source list.
Note: 1: 1402 2: UNKNOWN\URL 3: 2 
Note: 1: 1706 2: -2147483647 3: myInstallation[1].msi 
Note: 1: 1706 2:  3: myInstallation[1].msi 
SOURCEMGMT: Failed to resolve source
MainEngineThread is returning 1612
=== Verbose logging stopped: 03.07.2013  23:17:41 ===

但我无法从中得出任何有用的信息,这与第一个问题不同,第一个问题很明显,运行安装包的驱动器实际上是一个网络驱动器。

虽然在这种情况下,安装直接驻留在 下C:\,但不知何故 MSI 仍然试图在 Internet Explorer 缓存文件中找到某些东西,我无法理解。

这里发生了什么,我该如何解决?

更新

尝试命令后

C:\> msiexec /i myInstallation.msi REINSTALL=ALL REINSTALLMODE=vomus /qb

我收到一个错误窗口告诉我

尝试从文件 C:\myInstallation[1].msi 读取时发生网络错误

当我从 执行(并刷新)所有内容时,怎么会发生这种情况C:

4

2 回答 2

2

有人下载了 MSI 并单击“打开”,因此从缓存中安装了 MSI。这是一个短暂的位置,所以现在你就在你所在的位置。

您可以从某个地方获得此 MSI 的副本吗?如果是这样,请将其复制到您希望从中缓存它的位置并运行命令 msiexec /i foo.msi REINSTALL=ALL REINSTALLMODE=vomus /qb。它现在将被缓存在那里。

如果您需要编程,有些 API 可以做同样的事情。

安装程序功能参考

MsiSourceListAddSource

在指定的上下文中添加或重新排序补丁或产品的来源。

MsiSourceListAddSourceEx

在指定的上下文中添加或重新排序补丁或产品的来源。为指定上下文中不存在的补丁创建源列表。在 Windows 安装程序 3.0 中可用。

MsiSourceListClearSource

删除指定上下文中产品或补丁的现有源。在 Windows 安装程序 3.0 中可用。

MsiSourceListClearAll

删除指定产品实例的特定源类型的所有现有源。

MsiSourceListClearAllEx

删除指定产品实例的特定源类型的所有现有源。在 Windows 安装程序 3.0 中可用。

MsiSourceListForceResolution

删除产品或补丁的当前来源的注册,它被注册为属性“LastUsedSource”。此功能不影响已注册的源列表。

MsiSourceListForceResolutionEx

删除产品或补丁的当前来源的注册,它被注册为属性“LastUsedSource”。此功能不影响已注册的源列表。在 Windows 安装程序 3.0 中可用。

MsiSourceListGetInfo

检索有关特定上下文中产品或补丁的源列表的信息。

MsiSourceListSetInfo

为指定上下文中的产品或补丁设置最近使用的源。在 Windows 安装程序 3.0 中可用。

MsiSourceListEnumMediaDisks

枚举为补丁或产品的媒体源注册的磁盘列表。在 Windows 安装程序 3.0 中可用。

MsiSourceListAddMediaDisk

添加或更新已注册产品或补丁的媒体源磁盘。在 Windows 安装程序 3.0 中可用。

MsiSourceListClearMediaDisk

在特定上下文中删除产品或补丁的媒体源下的现有注册磁盘。在 Windows 安装程序 3.0 中可用。

MsiSourceListEnumSources

枚举指定补丁或产品的源列表中的源。在 Windows 安装程序 3.0 中可用。

于 2013-07-04T11:01:09.743 回答
0

一些背景:

每个 MSI 都会“记住”它的安装位置。此信息存储在以下键中:“HKEY_CLASSES_ROOT\Installer\Products\\SourceList\Net”

每次修复或修改 MSI 并且需要文件(所有其他信息都存储在“c:\Windows\Installer”文件夹中)时,都会评估源列表。


可能的解决方案:

在您的情况下,某些用户从 IE 缓存中安装了 MSI。您可以再次下载该文件,将其放置在更持久的位置并编辑 SourceList Key(s)。

是msi以某种压缩方式的产品代码,找到正确的最快方法是翻转产品代码的前8个字母。对你来说,这将是“HKEY_CLASSES_ROOT\Installer\Products\B5035D88...\SourceList\Net”

于 2013-07-04T12:39:47.837 回答