我在我的 installshield 项目中添加了 crystal runtime 作为先决条件。我正在使用命令行参数 /qn /norestart 静默安装运行时。我面临的问题是,如果机器上已经安装了旧版本的 crystal runtime,那么新版本的静默安装就会失败。
但是,如果我以交互方式运行 MSI,那么它会要求用户继续该过程,如果他们继续,那么一旦获得用户同意,旧版本将被卸载。
对于任何想知道的人,解决方案是使用 upgrade=1 参数删除旧的运行时并安装新的运行时
msiexec /package CRRuntime.msi upgrade =1 /qn