我正在开发一个安装程序(用 NSIS 脚本编写),我想包含一个第三方 MSI 文件,这是我的应用程序的先决条件。
使用 安装 MSI 文件非常容易msiexec.exe /i somelibrary.msi
,但这只能在第一次正常工作。我发现这与 Windows Installer 保存在注册表中的源位置有关。
我阅读了一些关于 MSI 源位置的帖子,如下所示:
问题是:我应该将原始SomeLibrary.msi
文件放在哪里,以便保留它以供将来修复或重新安装操作?
如果我将文件放在我的应用程序目标位置(例如 in C:\Program Files\...
),它将被我的应用程序卸载程序删除。
然后尝试在另一个目录中重新安装,A network error occurred while attempting to read from the file C:\Program Files\...\SomeLibrary.msi
这是可以理解的,因为原始源 MSI 文件已在卸载过程中被删除。
我知道 Windows 安装程序会创建 MSI 的缓存版本,但它会删除所有文件,因此仍然只能进行简单的卸载。