gpt4 book ai didi

windows-installer - Msiexec REINSTALL=ALL REINSTALLMODE=vamus 没有重新安装任何东西

转载 作者:行者123 更新时间:2023-12-04 07:09:56 26 4
gpt4 key购买 nike

基本上我正在尝试升级我的应用程序,据我所知,以下内容应该无条件地重新安装所有组件:
msiexec/i myapp.msi REINSTALL=ALL REINSTALLMODE=vamus

但是在详细日志中,我看到:
MSI (s) (A0:60) [15:40:10:948]:组件:A;安装:本地;请求:空;行动:空

MSI (s) (A0:60) [15:40:10:948]:组件:B;安装:本地;请求:空;行动:空

MSI (s) (A0:60) [15:40:10:948]:组件:C;安装:本地;请求:空;行动:空

MSI (s) (A0:60) [15:40:10:948]:组件:D;安装:本地;请求:空;行动:空

每个组件等。如果我从目标文件夹中删除或重命名文件,它将正确安装新版本,但是如果该文件存在于该位置,它将忽略它而不是用当前 msi 文件中的副本替换它。

有没有人对可能出现的问题有任何见解?

编辑:安装程序是在 WiX 中创建的。 Product ID 和 UpgradeCode 保持不变,而 PackageID 设置为 * 因此应该为每个构建生成一个新的,所以据我所知应该是正确的

最佳答案

这有点棘手,我遇到了同样的问题。
为了使更新安装工作,更新包必须包含原始包中的所有组件。
这意味着您永远无法删除组件。您可以从组件中删除文件,甚至可以删除所有文件,但不允许删除组件。
否则,在进行补丁或次要更新时,更新安装实际上不会执行任何操作。 ComponentID 存储在 Windows 注册表中,Windows Installer 服务使用它们来检查系统上是否安装了组件。

如果您删除了组件怎么办?
您可以尝试重新添加它们,但它们具有相同的包 ID,这是困难甚至不可能的部分。

如果它仍然不起作用,您必须选择新安装,并且必须自己弄清楚必须更新什么。

或者,您可以进行主要更新,先卸载再安装。 Windows 安装程序不会以这种方式关心功能组件结构。

关于windows-installer - Msiexec REINSTALL=ALL REINSTALLMODE=vamus 没有重新安装任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com