我有可以建成为一个32位或64位的安装程序,与一些预处理之间选择一个维克斯安装ProgramFilesFolder
和ProgramFiles64Folder
。
由于安装程序会将在Shared Documents文件夹和通用AppData的一些文件,这两个版本不能并排共存方等具有相同的升级代码和不同的产品代码。
RemoveExistingProducts
及早安排后,立即InstallValidate
和我始终执行版本之间的重大升级。
然而,当从早期版本的x64进行到以后的x86版的升级,在所有的x64文件c:\Program Files
被留了下来。
阅读日志,看来,当涉及到卸载旧的64位组件,它在寻找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
。
这是一种升级的只是一些那是不可能的?