【发布时间】:2017-10-27 12:25:18
【问题描述】:
首先,我试图在几个论坛上找到解释,但我没有
找到了一个可以解释观察到的行为的主题。
在此之前,如果我错过了,我深表歉意。
观察到的行为:
使用新安装程序升级产品时,之前的安装并不总是正确删除。
以前和当前安装程序 wix 设置项目之间的变化:
- 以前的产品安装程序安装在目录
<DirectoryId="ProgramFiles64Folder">下 - 新的安装程序已经更新在
<Directory Id="ProgramFilesFolder">下安装 - 检查是否安装了 .Net framework 4.5 或更新版本
- 使用
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
当我在我的计算机(Windows 10 - 64 位操作系统)上升级产品时,一切正常:
- 以前安装在“C:\Program Files\”下的产品已正确卸载 - 请参阅日志提取:
删除现有产品:应用程序:{F6E83B3C-CA4D-4FE2-BB54-4D5156D9EB98},命令行:UPGRADINGPRODUCTCODE={DB2D1294-EA5F-4BEF-BFBC-A236E0DCDEB3} CLIENTPROCESSID=21584 CLIENTUILEVEL=0 REMOVE=ALL
- 新产品已正确安装在“C:\Program Files (x86)\”下
但是另一方面,用户遇到了一个问题:以前的产品没有卸载(Windows 7 - 64 bits OS)
- 使用详细日志升级时我可以看到以前的版本是 找到:
删除现有产品:应用程序:{F6E83B3C-CA4D-4FE2-BB54-4D5156D9EB98},命令行:UPGRADINGPRODUCTCODE={E71A5696-B038-4EEE-9B4A-DE0A3D84045E} CLIENTUILEVEL=0 REMOVE=ALL
- 当 CostFinalize 序列开始移除现有产品时, 目录结构位置更改为“C:\Program Files (x86)\" 尚未安装产品的地方:
MSI (s) (6C:60) [12:17:56:505]:属性更改:修改 ProgramFiles64Folder 属性。它的当前值为'C:\Program Files\'。它的新值:'C:\Program Files (x86)\'。
MSI (s) (6C:60) [12:17:56:505]:属性更改:添加 CompanyDIR 属性。它的值是 'C:\Program Files (x86)\Company\'。
MSI (s) (6C:60) [12:17:56:505]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' 将替换 'C:\Program Files\Company\Company 中的 17 个字符产品\'文件夹路径。 (掩码参数 = 0,文件夹对的 iSwapAttrib 成员 = 0)。
MSI (s) (6C:60) [12:17:56:505]:属性更改:正在修改 INSTALLFOLDER 属性。它的当前值为“C:\Program Files\Company\Company Product”。它的新值:'C:\Program Files (x86)\Company\Company Product\'。
- 我有完整的升级日志文件(一个正常,另一个失败)
- 如果需要,我可以为您提供有关用于生成的 wix file.wxs 的更多详细信息 微星
问题:
- 有没有人遇到过这样的行为?
- 是卸载旧版本并安装新版本的唯一解决方案 一个?
提前谢谢大家!
【问题讨论】:
标签: wix