Небольшое руководство по ипользованию утилиты ISS Joiner.
У пользователей часто возникает вопрос — почему при использовании этой утилиты, в конечном скрипте получается полная каша, и чаще всего такой скрипт не работает? Все просто — мы забываем посмотреть в папку с примером
Смысл такой — эта утилита объединяет основные процедуры в секции програмного кода, остальные секции просто добавляются в скрипт в том порядке, в каком скрипты для объединения были поданы в команду.
Итак, правильная подготовка скриптов для объединения. В первую очередь — удаляем все секции, кроме секции кода. Во вторых, удаляем заглавие секции кода — слово [Сode] в начале секции. теперь самое важное — располагаем объединяемые срипты в правильном порядке, то есть в таком, в каком они должны отрабатывать (например, если в одном идет распаковка файлов, в другом их использование, то первым однозначно должна идти распаковка). Переименовывать лучше номерами, чтоб не запутаться.
В итоге, у вас должны получится несколько скриптов, содержащих только программный код в чистом виде, без каких-либо секций, такого вида:
var
PageNameLabel, PageDescriptionLabel: TLabel;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
end;
function NeedRestart(): Boolean;
begin
Result := True;
end;
function GetCustomSetupExitCode(): Integer;
begin
Result := 1;
end;
procedure InitializeWizard();
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
.....................................
После чего, в проводнике выделяем подготовленные скрипты, и в контекстном меню выбираем Join Scripts. Получаем скрипт такого вида:
// --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, (c) Bulat Ziganshin. More info at http://issjoiner.codeplex.com/
// --- Source: 11.iss ------------------------------------------------------------
var
PageNameLabel, PageDescriptionLabel: TLabel;
function NextButtonClick1(CurPageID: Integer): Boolean;
begin
Result := True;
end;
.....................................
добавляем заглавие секции кода: [Сode] в начало скрипта, добавляем остальные секции, которые нужны, не забываем указать файлы, которые нужны для работы скрипта и пользуемся.
Мораль той басни… В общем, мораль простая: не забываем смотреть примеры, и если нет справки,то анализировать — почему именно так, и почему так работает