通过cmd在wix上进行次要/主要升级

通过cmd在wix上进行次要/主要升级,wix,windows-installer,upgrade,Wix,Windows Installer,Upgrade,我刚刚开始使用WIX,我在stackoverflow中阅读了很多教程和问题,但升级部分仍然存在问题 当我通过单击.msi文件安装新版本时,它会删除旧版本并安装新版本 但是,当我试图通过cmd做同样的事情时: msiexec.exe /qn /l* logfile.txt /i MY_FILE.msi 它不好用。一些配置文件已损坏,例如,在第一次安装中,用户应输入服务器名称,升级时无需输入服务器名称。通过cmd升级时,删除服务器的名称。(这是一个问题) 升级路线 <Upgrade Id="

我刚刚开始使用WIX,我在stackoverflow中阅读了很多教程和问题,但升级部分仍然存在问题

当我通过单击.msi文件安装新版本时,它会删除旧版本并安装新版本

但是,当我试图通过cmd做同样的事情时:

msiexec.exe /qn /l* logfile.txt /i MY_FILE.msi
它不好用。一些配置文件已损坏,例如,在第一次安装中,用户应输入服务器名称,升级时无需输入服务器名称。通过cmd升级时,删除服务器的名称。(这是一个问题)

升级路线

<Upgrade Id="GUID">
  <UpgradeVersion OnlyDetect="yes" Property="NEWER_VER_FOUND" IncludeMinimum="yes"
                        Minimum="$(var.ProductFileVersion)" />
  <UpgradeVersion Property="OLDER_VER_FOUND" IncludeMinimum="yes"
                        Minimum="1.0.0" IncludeMaximum="no" Maximum="$(var.ProductFileVersion)" />
</Upgrade>

有人知道如何解决这个问题吗

另一个问题:如果我希望升级只与旧文件交换新文件,而不是卸载/重新安装,我需要更改什么


Thanx

这并不是你的主要升级规则的问题。它更多地与属性不会在事务中持久化这一事实有关。结帐:


Thanx,我正试图弄清楚,如何从初始安装中获取值?我需要在属性中的何处写入此值??您的初始安装需要将其存储在注册表之类的位置。随后的安装将在中读取该内容。如果您的初始安装已经部署,这可能是一个问题。根据应用程序的设计,您可能需要从某个应用程序设置文件或其他文件中获取它。好的,假设我找到了保存所需值的var,我需要在哪里写入它?第12行的“关键”字段是什么?Thanx再次出现。关于在何处保存价值,没有行业标准。第12行(关键)由您决定。问题是,当我使用完整ui进行安装时,它会识别这是一次升级,我按下“升级”按钮继续。在静默安装中(也没有ui、基本ui和reduce ui),它会忽略升级,卸载旧版本并安装新版本。有许多东西需要从旧版本中保存。我只想让静默安装执行与完整ui安装相同的升级。你知道吗???再次非常感谢