continuous-integration - 在系统帐户下运行时 MSI 未升级
问题描述
我正在使用 PsExec 使用以下命令在远程计算机上运行 MSI:
psexec -accepteula \\$(remote-machine-fqdn) -s cmd /c "msiexec.exe /qn /I $(path-to-msi) /Lv $(path-to-log-file)"
这第一次工作正常,安装应用程序。
但是,后续运行(这是作为 TFS 中 CI 构建的一部分运行的)会导致应用程序的多个版本出现在“添加和删除程序”中。如果我自己运行安装程序(登录到服务器,单击 MSI 等),那么它会正确升级,因此问题似乎不在安装程序本身。
我认为问题在于以系统帐户运行(PsExec 命令中的 -s 开关),但我看不出为什么会发生这种情况。有人见过这个吗?
解决方案
尝试在全新和升级安装时将 ALLUSERS=1 公共属性传递给 msi。
推荐阅读
- php - 如果当前日期在日期之间,WP_Query 获取数据
- reactjs - 当我需要将引用传递给另一个组件时,如何确保加载它?
- r - 在数据框中找到最小转折点
- java - 如果输入错误,请重新输入
- python - 在确定的 wx.StatusBar 的字段中显示 wx.MenuItems 的帮助字符串
- eiffel - 在所有断言都设置为 true 的情况下如何不进行检查?
- functional-programming - Curry 中的 N 元函数和 Prolog 中的 N+1 元关系之间有什么区别吗?
- python - 如何将字典术语转换为熊猫数据框?
- c++ - 递归删除所有相邻的重复项(使用堆栈)
- javascript - react-leaflet v3 缩放监听器