Константы , такие как {userdesktop}
, разрешаются во время установки (на компьютере целевого пользователя), а не во время компиляции (на компьютере разработчика).Поэтому нет смысла использовать константы в директиве только во время компиляции, как OutputDir
.И на самом деле их вообще невозможно использовать (так как это бесполезно).
Используя макет каталога профиля пользователя по умолчанию, вы можете использовать префикс userdocs:
, как вы это сделали:
[Setup]
OutputDir=userdocs:..\Desktop
Хотя это не идеальное решение, поскольку папка «Документы» может быть перемещена пользователем, и тогда userdocs:..\Desktop
не будет указывать на рабочий стол.
Более надежныйрешение заключается в использовании USERPROFILE
переменной среды с использованием GetEnv
функции препроцессора :
[Setup]
OutputDir={#GetEnv('USERPROFILE')}\Desktop