NSIS 从 AppData 检索和复制文件

NSIS retrieve and copy file from AppData

我想检查一个文件并将其复制到另一个目录(如果存在)。不幸的是,该文件存在于 AppData 文件夹中。

CheckFile:
         !define INSTDIR_DATA "$APPDATA\Local\VirtualStore\Program Files\SomeFolder"
         IfFileExists INSTDIR_DATA\SettingsFile.ini CopyOver NotHere

我毫无问题地进入了这个部分,但是尽管已明确确保它存在,但它似乎找不到该文件。我错过了什么吗?需要注意的是,我确实希望通过当前用户目录搜索此目录,因此不需要将其设置为所有用户。

NSIS 有一个 $LocalAppData 常量:

DetailPrint $AppData
DetailPrint $LocalAppdata

在我的系统上打印:

C:\Users\Anders\AppData\Roaming
C:\Users\Anders\AppData\Local

$AppData 实际上不是 AppData "root" 而是它的漫游部分。

如果您的脚本中有 RequestExecutionLevel 属性,那么这将影响 Windows 处理文件系统重定向的方式,而 VirtualStore 是其中的一部分。