wix - WIX 使用 32 位 MSI 从注册表中读取 64 位路径
问题描述
当我尝试使用 32 位 MSI 从 64 位机器中的注册表读取 MSaccess.exe 路径时,我运行了以下 WIN64DUALFOLDERS 操作并将属性覆盖到 32 位访问路径,如下所示
MSI (c) (90:98) [13:02:25:495]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\Microsoft Office\Root\Office16\' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0).
MSI (c) (90:98) [13:02:25:495]: PROPERTY CHANGE: Adding MSACCESSREGISTRYPATH property. Its value is 'C:\Program Files (x86)\Microsoft Office\Root\Office16\'.
我想读取 'C:\Program Files' 路径,但它被 WIN64DUALFOLDERS 操作覆盖为 'C:\Program Files (x86)\' 路径。
有没有办法在不使用 32 位 msi 覆盖的情况下获得这个值
解决方案
使用 PROGRAMFILES64 获取 C:\ProgramFiles 路径
“PROGRAMFILES64 系统变量包含由 Windows 定义的文件夹的完全限定名称,用于在 64 位系统上存储 64 位应用程序。(请注意,32 位应用程序存储在 PROGRAMFILES 文件夹下。)在英文 Windows 中,该文件夹名为 Program Files,它位于安装 Windows 的驱动器的根目录之外。(在其他语言版本的 Windows 中,默认情况下,文件夹名称已适当本地化。)程序文件文件夹是应用程序的推荐默认位置文件夹。”
推荐阅读
- r - 我正在尝试将正态分布的结果与未知 df 值的 t 分布进行比较
- c# - 跳过csv中的第一个拆分字符
- pyspark - 根据 PySpark 中另一个数据框的列值的值更新列中的值
- javascript - 正则表达式中的匹配列表符号(角度 2)
- angular - 使用 Kendo PDF 导出网格
- r - 如何创建一个函数来获取第二个数据帧的日期时间子集?
- c# - Dialogflow V2 api 的无效示例
- rx-java2 - 根据 Observable 条件过滤 RxJava/ReactiveX Observable
- arraylist - 向 ArrayList 添加值时出现问题
- html - ALAA-123456 的正则表达式是什么