У меня есть пара проблем, пытающихся достичь того, что я хочу, и я буду обсуждать каждую проблему отдельно. Это касается установочного файла справочной документации, о котором я уже спрашивал раньше. Но теперь я использую IDP. Мне нужно изменить свой лог c, и он ошибся.
Во-первых, у меня есть такая задача:
Name: "downloadhelp"; Description: "{cm:DownloadHelpTask}"; \
GroupDescription: "{cm:DownloadHelpGroup}"; Flags: unchecked
Затем я добавил это:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpReady then
begin
if (WizardIsTaskSelected('downloadhelp')) then
AddFileForDownload('{#HelpDocSetupURL}', ExpandConstant('{tmp}\HelpDocSetup.exe'));
end;
WizardForm.CancelButton.Top := WizardForm.NextButton.Top;
end;
И это в разделе [Run]
:
Filename: "{app}\HelpDocSetup.exe"; \
Parameters: "/SP- /VERYSILENT /InstallPath=""{app}"""; \
WorkingDir: "{app}"; \
Flags: waituntilterminated runhidden; \
Description: "{cm:InstallingHelpDescription}"; \
StatusMsg: "{cm:InstallingHelpStatusMessage}"; \
Tasks: downloadhelp
Но когда я нахожусь на моей «готовой» странице, файл не отображается в списке для загрузки.
Когда именно Можно ли добавить файл для загрузки в зависимости от выбранной задачи?
Теперь я понимаю, что wpReady
означает, что мы уже заполнили содержание заметки. Раньше я использовал эту строку:
;Source: "{tmp}\HelpDocSetup.exe"; \
; DestDir: "{app}"; \
; Flags: external deleteafterinstall; \
; Tasks: downloadhelp; \
; Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', \
; 'My_Setup', 'Get', {#HelpDocSetupFileSize}, 0 )
Задача указана правильно:
вопрос , но это относится к компонентам, а не задачам.
Второй ответ здесь звучит как возможное решение.
На основе добавленного мной связанного ответа:
function NextButtonClick(CurPageID: integer): boolean;
begin
Result := True;
if(CurPageID = wpSelectTasks) then
begin
if WizardIsTaskSelected('downloadhelp') then
AddFileForDownload('{#HelpDocSetupURL}', ExpandConstant('{tmp}\HelpDocSetup.exe'));
end;
end;
Но это ошибочно. Если пользователь использует next / back, он продолжает добавлять файл несколько раз в список файлов для загрузки, и на моей странице с готовой памяткой перечислены все из них.
Я попытался изменить его, чтобы использовать компоненты и «Справку по загрузке» перечислено там. Затем я смог просто использовать idpAddFileComp
в InitializeWizard
, но в итоге я столкнулся с прежней проблемой перечисления файла как подлежащего загрузке.