2

我有一个使用InstallScript MSI项目类型创建的设置。我们的客户遇到了这个问题,他想要一个快速的解决方案。

假设我已经从类似的路径启动了安装

C:\Setup_V_1.0.0931.1

在这个文件夹中,我有 Setup.exe,我将通过它安装产品。安装后或经过几天后,我会将路径更改为:

C:\New\Setup_V_1.0.0931.1

这次我想修改设置。实际上,我们支持 3 个功能:服务器、客户端和服务。

这次我只想要客户端而不想要服务器。因此,我将单击 Setup.exe 或单击启动菜单中的卸载图标,这将导致维护模式,您可以选择修改、修复或删除。我选择修改并选择功能,但是随着安装的进行,会弹出此错误消息:

安装程序在指定路径或磁盘上找不到文件。请检查是否插入了正确的磁盘或指定新路径。找不到文件 c:\New\Setup_V_1.0.0931.1\setup.msi

然后,将显示另一个弹出窗口:

错误:1706。找不到产品的有效来源。Windows 安装程序无法继续。

下一条错误消息是:

错误:1603。安装过程中出现致命错误。有关详细信息,请参阅 Windows Installer 帮助 (Msi.chm) 或 MSDN。

但是,如果我将路径更改为其原始位置,它就可以正常工作。

我该如何解决这个问题?

我在此注册表路径中检查了事件:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\{Product-Key}

此键包含 InstallProperties 内的大量信息。有一个名为 InstallSource 的键,其值为C:\Setup_V_1.0.3909.1\. 即使更改此值后 installshiled 仍然显示错误。

我为卸载信息找到了相同的注册表信息:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{Product-Key}
4

2 回答 2

0

在您的属性中将 ReinstallMode (或者我忘记了重新安装)从 omus 更改为 vomus

v 表示缓存您的安装,因此它会将您的 .msi 文件放在 c:\windows\installer 中,以便以后使用。

于 2011-03-06T05:36:30.267 回答
0

安装 MSI 时,Windows Installer 将原始 MSI 路径保存在注册表中(您提到的 InstallSource 条目)。在维护模式下运行 MSI 时,Windows Installer 将使用此路径查找安装数据(CAB 文件)。

当您移动 MSI 时,存储在注册表中的路径不再有效,因此 Windows Installer 无法找到安装数据。

一种可能的解决方案是使用“控制面板”中的“添加或删除程序”或“程序和功能”来修改安装。这种方式使用缓存的 MSI。

于 2011-03-07T07:50:10.360 回答