我最近升级了使用 WiX Toolset 4 创建的应用程序安装程序。在旧版本中,我没有指定范围,而在新版本中,我将范围设置为“perUser”,以允许非管理员用户也安装该应用程序.
但是,当尝试使用新安装程序将应用程序从旧版本更新到新版本时,我遇到如下错误
“写入文件 filename.exe 时出错。请验证您是否有权访问 目录。”
新旧设置都安装在AppData内的同一文件夹中。此外,我在设置中使用
<MajorUpgrade>
元素来确保在安装新版本之前卸载先前版本。尽管如此,我仍然面临这个问题。
任何有关如何排查和解决此问题的见解或建议将不胜感激。谢谢!
确保日志已启用:要检查的第一个元素是where,它尝试写入
filename.exe
。
阅读“面向 WiX v3/用户的WiX v4 常见问题解答(因为 WiX v5 尚不可用,计划于 2024 年 4 月 5 日发布),我看到:
Program Files
文件夹 ID 的解决方案。 WiX v4 引入了新的“standard
”目录ProgramFiles6432Folder
来解决该问题。对于 x86 软件包,ProgramFiles6432Folder
自动解析为 ProgramFilesFolder
,对于 x64 或 Arm64 软件包,ProgramFiles64Folder
。C:\Windows\SystemTemp
。即使最终安装在
%APPDATA%
中,也要确保没有中间步骤尝试将exe写入另一个文件夹。filename.exe
”进程正在运行,这可能会阻止新文件覆盖旧文件。