2015-09-29 5 views
1

Инсталлятор Inno Setup создает нежелательную пустую папку, используя мое начальное значение DefaultDirName, хотя я установил WizardForm.DirEdit.Text = 'c:\preferredinstalldir' в CurStepChanged (curStep = ssInstall). Установщик помещает файлы в нужную папку установки, но поскольку мне нужно назначить фиктивное значение DefaultDirName, он создает эту папку-заглушку. Я попытался с помощью {code:xx} функции для DefaultDirName но так как на самом деле папок я хочу не был определен, пока мастер не работает, мне кажется, нужна папка-заполнителя (но я не хочу, он создал!)Inno Setup создает нежелательную пустую папку со значением в DefaultDirName

AppId = {code:GetAppId} 
AppName={#MyAppName} 
AppVersion={#MyAppVersion} 
AppCopyright={#MyAppCopyright} 
VersionInfoCopyright={#MyAppCopyright} 
AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} 

DefaultDirName={code:GetFilesDestDir} //this says error path not valid, no root/unc etc etc because the function has no path set yet 
DefaultDirName=c:\mydummyfolder //this creates a dummy folder even though the files are installed correctly to location i set later in CurStepChanged (I assign WizardForm.DirEdit.Text := InstallPath) 

DisableDirPage=yes 
DefaultGroupName=SomeName 
DisableProgramGroupPage=yes 
OutputBaseFilename=mysetup_setup 
Compression=lzma 
SolidCompression=yes 
UsePreviousAppDir=no 
UsePreviousLanguage=no 
UninstallFilesDir = {code:GetFilesDestDir}\uninst 

............. 

function GetFilesDestDir(def:string): string; 
begin 
    if InstallPathSet then 
    begin 
    Result := InstallPath; 
    end 
end; 

Я видел этот вопрос здесь Inno Script: Strange Empty Folder , но на него ничего не ответил и я не смог опубликовать комментарий.

ответ

-1

Я не могу воспроизвести то, что вы описали.

Изменение WizardForm.DirEdit.Text в CurStepChanged(ssInstall) не имеет никакого эффекта. Слишком поздно.


В любом случае, просто измените значение раньше. Например, в InitializeWizard или CurPageChanged.

+0

Изменение WizardForm.DirEdit.Text в currStepchanged ssInstall имеет эффект, вот как я установил фактическую папку установки на основе некоторых вариантов кода. – user5388807

+0

Из ваших комментариев и ответов на собственные вопросы, я думаю, вы не устанавливаете файлы в '{app}', а в '{code: GetFilesDestDir}'. Тогда он будет вести себя так, как вы описываете. Но ты не сказал нам. –

1

Я думаю, что нашел решение, установив CreateAppDir = no, похоже, делает трюк. По крайней мере, он больше не создает пустую папку в исходном фиктивном местоположении.

Смежные вопросы