我有一个链接2个MSI文件的设置:
我希望第二个MSI文件使用相同的安装目录,因此MSI文件1将用户选定的目录存储在注册表中,然后MSI文件2读取并用作其目标。
很好和花花公子 - 如果我将MSI文件1安装到C:\Test\
没有问题 - MSI文件2选择它并将工具包扔进该文件夹。
当我安装到C:\Program Files
但是...然后MSI文件2变得有点聪明并决定我必须意味着C:\Program Files (x86)
并将工具放在那里 - 有点乱。
它在执行时记录:
Action start 16:53:59: AppSearch.
MSI (c) (2C:44) [16:53:59:521]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (c) (2C:44) [16:53:59:521]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\Manufacturer\Product' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0).
MSI (c) (2C:44) [16:53:59:521]: PROPERTY CHANGE: Adding INSTALLDIRECTORY property. Its value is 'C:\Program Files (x86)\Manufacturer\Product'.
Action ended 16:53:59: AppSearch. Return value 1.
我希望避免使用x64版本的MSI文件2(它在20 MB的范围内)过多地设置我的设置,所以我的问题是:
有没有办法可以避免/禁用此行为并让我的x86 MSI文件信任我并写入“Program Files”,而不是“Program Files(x86)”?
答案 0 :(得分:2)
不,它无法禁用。 MSI强制执行其规则,即32位程序包无法写入文件系统(和注册表)的64位部分。