在WiX中禁用WIN64DUALFOLDERS替换 [英] Disable WIN64DUALFOLDERS substitution in WiX

查看:120
本文介绍了在WiX中禁用WIN64DUALFOLDERS替换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个链接2个MSI文件的设置:

I have a setup which chains 2 MSI files:


  1. 安装我的产品的x86 / x64 MSI文件都可以。

  2. 一个x86 MSI文件,该文件部署了第三方工具包

我希望使用第二个MSI文件相同的安装目录,因此MSI文件1将用户选择的目录存储在注册表中,然后MSI文件2读取该目录并将其用作目标。

I wanted the second MSI file to use the same install directory so MSI file 1 stores the user's selected directory in the registry which MSI file 2 then reads and uses as its target.

精打细算-如果我安装了MSI文件1到 C:\Test\ 没问题-MSI文件2将其拾取并将工具包扔到该文件夹​​中。

Fine and dandy - if I install MSI file 1 to C:\Test\ no problem - MSI file 2 picks this up and throws the tool kits into that folder.

当我安装到 C:\Program Files 时......然后MSI文件2变得更加聪明,并决定我一定是 C:\Program Files(x86)并将工具放到那里-有点混乱。

When I install to C:\Program Files however... then MSI file 2 gets a bit to clever and decides I must have meant C:\Program Files (x86) and puts the tools in there - a bit messy.

它记录了此内容何时执行:

It logs this when it does it:

  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),所以我的问题是:

I am hoping to avoid bloating my setup too much with an x64 version of MSI file 2 (it is in the region of 20 MB), so my question is:

有没有一种方法可以避免/禁用此行为并获得我的x86 MSI文件相信我并写到程序文件,而不是程序文件(x86)?

Is there a way I can avoid/disable this behaviour and get my x86 MSI file to trust me and write to "Program Files", not "Program Files (x86)"?

推荐答案

不,可以被禁用。 MSI强制执行以下规则:32位软件包不能写入文件系统(和注册表)的64位部分。

No, it can't be disabled. MSI enforces its rule that a 32-bit package cannot write to 64-bit portions of the file system (and registry).

这篇关于在WiX中禁用WIN64DUALFOLDERS替换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆