升级应用程序并从64位切换到32位

时间:2017-02-02 14:01:15

标签: wix windows-installer installer

我有一个可以构建为32位或64位安装程序的WiX安装程序,可以在ProgramFilesFolderProgramFiles64Folder之间进行一些预处理。

由于安装程序会将一些文件放在共享文档文件夹和Common AppData中,因此这两个版本不能并排共存,因此具有相同的升级代码和不同的产品代码。

RemoveExistingProducts计划在InstallValidate之后立即安排,我总是在版本之间执行重大升级。

但是,从早期的x64版本升级到更高版本的x86版本时,c:\Program Files中的所有x64文件都会被遗忘。

阅读日志时,似乎在卸载旧的x64组件时,它正在查看c:\Program Files (x86)

MSI (s) (50:08) [11:53:16:589]: Executing op: FileRemove(,FileName=common.dll,,ComponentId={1680271B-6AAD-4B2A-8F6E-BDCBC964CC92})
RemoveFiles: File: common.dll, Directory: C:\Program Files (x86)\XJTAG 3.5\Bin\

最初,两个安装程序中的组件具有相同的GUID,即使它们被安装到两个安装程序中的不同位置,因为知道提前安排RemoveExistingProducts应该允许我逃脱它。但是,我使用不同的GUID构建了一个新的32位安装程序,问题仍然存在。

反过来不会发生这种情况。似乎因为新版本是32位安装程序,所以它使用的是c:\Program Files (x86)而不是c:\Program Files

这种升级只是不可能的吗?

0 个答案:

没有答案