在 WiX 工具集升级过程中更改安装范围时收到“写入文件时出错”信息

问题描述 投票:0回答:1

我最近升级了使用 WiX Toolset 4 创建的应用程序安装程序。在旧版本中,我没有指定范围,而在新版本中,我将范围设置为“perUser”,以允许非管理员用户也安装该应用程序.

但是,当尝试使用新安装程序将应用程序从旧版本更新到新版本时,我遇到如下错误

“写入文件 filename.exe 时出错。请验证您是否有权访问 目录。”

新旧设置都安装在AppData内的同一文件夹中。此外,我在设置中使用

<MajorUpgrade>
元素来确保在安装新版本之前卸载先前版本。尽管如此,我仍然面临这个问题。

任何有关如何排查和解决此问题的见解或建议将不胜感激。谢谢!

wix wix4
1个回答
0
投票

确保日志已启用:要检查的第一个元素是where,它尝试写入

filename.exe

阅读“面向 WiX v3/用户的WiX v4 常见问题解答(因为 WiX v5 尚不可用,计划于 2024 年 4 月 5 日发布),我看到:

  • WiX v3 没有针对根
    Program Files
    文件夹 ID 的解决方案。 WiX v4 引入了新的“
    standard
    ”目录
    ProgramFiles6432Folder
    来解决该问题。对于 x86 软件包,
    ProgramFiles6432Folder
    自动解析为
    ProgramFilesFolder
    ,对于 x64 或 Arm64 软件包,
    ProgramFiles64Folder
  • 提升进程的洁净室路径现在遵循系统级 TMP/TEMP 环境变量,而不是使用 Windows 目录中的硬编码 Temp 文件夹。在较新版本的 Windows 上,如果以 SYSTEM 身份运行,则使用
    C:\Windows\SystemTemp

即使最终安装在

%APPDATA%
中,也要确保没有中间步骤尝试将exe写入另一个文件夹。
如果它写入正确的文件夹,请检查此时是否没有其他“
filename.exe
”进程正在运行,这可能会阻止新文件覆盖旧文件。

© www.soinside.com 2019 - 2024. All rights reserved.