![]() |
Скрипты для InnoSetup
Кто разбирается в этом инсталляке помогите со скриптом, который бы выполнял следующее:
1. В инсталляк проги должен ходить .Net framework (при генерации нового инсталляка я его просто тупо добавил со всеми другими файлами) 2. Перед инсталляцией проги должна быть проверка на присутствие на компе .net framework и если его нет, то установить и только после этого ставится основная прога... я в своем инсталляке просто добавил ключ в секцию RUN Filename: "{app}\dotnetfx.exe"; Description: "{cm:LaunchProgram,Установить фреймворк}"; Flags: nowait postinstall skipifsilent Тупо но работает, правда потом инсталляк остается среди файлов, и проверки на присутствие net framework не проводиться... Жду предложений... |
ryfm
Я сделал также, тока dotnetfx с двумя апдейтами расспаковываю в папку {tmp} потом запускаю (сетап ждет) после завершения установки ДотНета и апдейтов завершается основная установка и файлы удаляются из временной директории. Проверку на наличие уже установленного ДотНета можно сделать, но зачем? если он сам делает эту проверку :) |
Просто нет премени разбираться с документацией к InnoSetup...
Поэтому вопрос, какие ключи нужны, чтобы net framework распаковывался в темп(сейчас он копируется в папку проги и остается там), запускался до сетапа проги, а потом удалялся (хотя наверное если он в темпе, то он удаляется автоматом?)... Или просто запости пример скрипта с этим, сам разберусь. Да и проверку я считаю надо сделать самому, чтобы не ждать пока инсталляк net framework запуститься и сам начнет проверять... |
ryfm
Для проверки установленного ДотНета имхо стоит мониторить веточку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework в реестре вот код который я юзаю ... Код:
[Run] |
Ок. пасиба...
Цитата:
Кстати, как в инно считать значение реестра... Надеюсь еще не заколебал :). |
ryfm
Цитата:
А насчет считывания значения реестра, дык ... В секции кода пишешь Код:
[Сode] Код:
[Files] |
Замечательно, код я переделал на следующий:
function DotNetInstalled(): Boolean; begin RegValue:=''; RegQueryStringValue(HKLM,'SOFTWARE\Microsoft\.NETF ramework','InstallRoot',RegValue); if (Length(RegValue)>0) then DotNetInstalled:=True; else DotNetInstalled:=False; end; В innosetup используется просто паскаль? Так лаконичнее... |
ryfm
Сам Инно написан на Дельфи, поэтому нельзя сказать что это Паскаль или Дельфи ... скорее клон по возможностям, но паскаль по синтаксису :) ЗЫ: ИМХО |
Цитата:
|
Есть вопросик по скриптам для инсталятора Inno - сделал выбор языков, но картинка инсталятора и название патча остались на русском - как сие можно изменить?
|
DotNetInstalled(): Boolean;
[Сode]
function InitializeSetup(): Boolean; var DotNetInstalled(): Boolean; begin RegValue:=''; RegQueryStringValue(HKLM,'SOFTWARE\Microsoft\.NETF ramework','InstallRoot',RegValue); if (Length(RegValue)>0) then DotNetInstalled:=True; else DotNetInstalled:=False; end; |
Часовой пояс GMT +4, время: 21:23. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.