Inno Setup всегда устанавливается в папку администратора AppData

Я хочу сохранить свое приложение у текущего пользователяAppData каталог, чтобы избежать проблем с разрешениями, которые мы имели при автоматическом обновлении нашего приложения (когда оно хранится в Program Files). Мы не предоставляем пользователю возможность установить приложение. У нас были жалобы от пользователей без прав администратора на то, что установщик сохраняет приложение вAppData каталог (после UAC, конечно), вместо текущего пользователяAppData каталог, который затем предотвращает запуск приложения в будущем.

Во-первых, я имелDefaultDirName={userappdata}\{#MyAppName}, Потом я попробовалDefaultDirName={commonappdata}\{#MyAppName}, Затем я попробовал это вместе сPrivilegesRequired=lowest и даже какPrivilegesRequired=none какДелать InnoSetup запрос на повышение привилегий только при необходимости предложенный вопрос

На данный момент это мой сценарий на случай, если я упущу что-то очевидное:

; Script generated by the Inno Setup Script Wizard.
;SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Teamwork Chat"
#define MyAppVersion "0.10.0"
#define MyAppPublisher "Digital Crew, Ltd."
#define MyAppURL "http://www.teamwork.com/"
#define MyAppExeName "TeamworkChat.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{0F063485-F5AF-4ADE-A9F9-661AB3BAA661}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={userappdata}\{#MyAppName}
DisableDirPage=yes
DefaultGroupName={#MyAppName}
OutputDir=E:\chat-client\dist
OutputBaseFilename={#MyAppName}_for_Windows32_Installer-{#MyAppVersion}
SetupIconFile=E:\chat-client\icons\teamwork_chat.ico
WizardImageFile=E:\chat-client\icons\chatWizardImageFile.bmp
Compression=lzma
SolidCompression=yes
PrivilegesRequired=none

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "E:\chat-client\dist\TeamworkChat\win32\TeamworkChat.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\chat-client\dist\TeamworkChat\win32\ffmpegsumo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\chat-client\dist\TeamworkChat\win32\icudtl.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\chat-client\dist\TeamworkChat\win32\libEGL.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\chat-client\dist\TeamworkChat\win32\libGLESv2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\chat-client\dist\TeamworkChat\win32\nw.pak"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
редактировать

Я изменил два варианта, но все еще не повезло;

PrivilegesRequired=lowest
...
[Icons]
...
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Изменить 2:

Я добавилrunasoriginaluser флаг и сгенерированный новыйAppId (GUID) но все равно не повезло;

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runasoriginaluser
Изменить 3:

Я создал простойGitHub репозиторий с исходными файлами и сценарием Inno.

Изменить 4:

Я тестировал на Windows 8.1. Кажется, что работает, когда скомпилировано в Windows 7 и работает на Windows 8, но не при компиляции на 8 и на 8.

Изменить 5:

Это решено сейчас, но прояснитьРедактировать 4, это не работает только на моей машине. Это работало на других машинах Windows 8. Должно быть, было какое-то странное кеширование или что-то еще (хотя я изменилAppId).

Ответы на вопрос(2)

Ваш ответ на вопрос