gpt4 book ai didi

windows-installer - MSI 忽略 %programfiles% 环境变量

转载 作者:行者123 更新时间:2023-12-04 04:37:35 25 4
gpt4 key购买 nike

我正在安装一个 MSI 的应用程序,忽略 %programfiles%环境变量。从 procmon 跟踪来看,它似乎正在使用 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir 的值相反。

为什么会这样做(我的意思是使用这个值是一种常见的做法,还是这是唯一向 MSI 构建者公开的值)?

为什么这个其他注册表值存在,当 HKCU\Environment\ProgramFiles & HKLM\System\CurrentControlSet\Control\Session Manager\Environment\ProgramFiles可以使用吗?

最佳答案

Windows 安装程序公开 ProgramFilesFolderProgramFiles64Folder属性。行为已记录在案,但实现未记录。你应该只依赖属性而不是其他技术。

正式地说,您需要使用 ProgramFiles64Folder 属性的 64 位 MSI 才能在 64 位计算机上转到 C:\Program Files\。即使您使用自定义操作将目录显式设置为 32 位 MSI 中的此路径,安装程序也会拦截该路径并将其重定向到它认为是预期目录的位置。这是为了应用程序兼容性目的。

有一种未公开的方法可以颠覆这种行为。使用自定义操作获取目标文件夹并将其转换为短路径 (C:\Progra~1)。安装程序不会将此检测为无效并允许它通过。使用它需要您自担风险。

关于windows-installer - MSI 忽略 %programfiles% 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com