NSIS получить и скопировать файл из AppData

Я хочу проверить файл и скопировать его в другой каталог, если он существует. К сожалению, файл существует в папке AppData.

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

Я попал в этот раздел без проблем, но тогда он не может найти файл, несмотря на явную уверенность, что он существует. Я что-то пропустил? Следует отметить, что я хочу, чтобы этот каталог просматривался в текущем пользовательском каталоге, поэтому настройка его для всех пользователей не требуется.

1 ответ

Решение

NSIS имеет константу $LocalAppData:

DetailPrint $AppData
DetailPrint $LocalAppdata

в моей системе это печатает:

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

$ AppData на самом деле не "корневой" AppData, а его перемещаемая часть.

Если у вас есть RequestExecutionLevel атрибут в вашем сценарии, то это будет влиять на то, как Windows работает с перенаправлением файловой системы, и VirtualStore является частью этого.

Другие вопросы по тегам