【问题标题】:Application sees old version of files after updating the files with Inno Setup-made update应用程序在使用 Inno Setup-made 更新更新文件后看到旧版本的文件
【发布时间】:2021-07-10 16:56:43
【问题描述】:

在 Windows 10 下遇到以下场景的问题:

  1. Inno 设置脚本有 PrivilegesRequired=admin 标志

  2. 初始安装运行良好,没有任何问题

  3. 安装了一个更新,其中一些 .exe 和软件相关的本地环境文件(也安装在软件安装文件夹 C:\Program Files\XYZ\ 中的文本文件)已被修改。

  4. 在用户帐户下运行软件时出现问题:

    一个。在用户帐户下运行时:软件会看到初始安装时已安装的文本文件(旧文件)。但是,.EXE 文件来自更新(新文件)

    b.在管理员帐户下运行时:没问题,一切正常,软件可以看到新的 .EXE 和文本文件

    c。在用户帐户下创建C:\Program Files\XYZ\ 文件夹的副本并运行软件:一切正常,软件可以看到新的 .EXE 和文本文件

[Setup]
DefaultDirName={pf}\XYZ\MyProgramName
PrivilegesRequired=admin
UsePreviousAppDir=false
AppendDefaultDirName=false

[Files]    
Source: E:\App1.exe; DestDir: {app}; Flags: ignoreversion; Check: InstStandalone
Source: E:\App2.exe; DestDir: {app}; Flags: ignoreversion; Check: InstStandalone

Source: {#MyInstlSourceDir}Hed\mastlca12i.hed; DestDir: {app}; Flags: ignoreversion
Source: {#MyInstlSourceDir}Hed\mastlca12m.hed; DestDir: {app}; Flags: ignoreversion
Source: {#MyInstlSourceDir}Hed\mastlca12Pi.hed; DestDir: {app}; Flags: ignoreversion
Source: {#MyInstlSourceDir}Hed\mastlca12Pm.hed; DestDir: {app}; Flags: ignoreversion

我应该在安装更新时设置一些特殊权限吗?

提前谢谢你。

【问题讨论】:

    标签: installation inno-setup


    【解决方案1】:

    我的猜测是您的应用程序会写入文件。如果应用程序没有应用程序清单,Windows 会将其视为旧应用程序,从而启用兼容模式。在该模式下,当应用程序尝试在其安装文件夹中写入文件时,用户实际上没有写入权限,Windows 会将写入重定向到虚拟存储。下次运行应用程序时,它会从虚拟存储中读取文件,而不是从原始安装文件夹中读取。因此,即使您更新了原始文件,应用程序仍将使用它自己的虚拟商店副本。

    详情见Application installed with Inno Setup writes files to unknown location instead of its installation folder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多