На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ Inno Setup
Пожалуйста, выделяйте текст инсталлятора написанного на Inno Setup тегом [сode=ins] ... [/сode]. Для этого используйте кнопку [code=ins] в форме ответа или выпадающего списка, если нужно вставить код из другой программы.


Обязательно указывать:

  • Программу, используемую для создания инсталлятора.



Если в ходе решения проблемы возникли дополнительные вопросы, по возможности задаем их в той же теме.


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> Inno Setup: выполнения разных сценариев установки , Не пойму как сделать.
    Подскажите пожалуйста, необходимо при запуске инсталлятора предлагать разный сценарий установки, т.е. это например:
    1. Программа А - минимальная установка
    Компоненты для установки (настраиваемый выбор компонентов):
    Компонент 1
    Компонент 2
    Компонент 3

    2. Программа А - максимальная установка
    Компоненты для установки (настраиваемый выбор компонентов):
    Компонент 4
    Компонент 5
    Компонент 6

    3. Plugin для программы Х
    Компоненты для установки (настраиваемый выбор компонентов):
    Компонент 7
    Компонент 8

    4. Plugin для программы Y
    Компоненты для установки (настраиваемый выбор компонентов):
    Компонент 9

    5. Plugin для программы Z
    Компоненты для установки (настраиваемый выбор компонентов):
    Компонент 10
    Компонент 11
    Компонент 12


    т.е. для каждого пункта будут свои копируемые файлы и значения реестра, а так же индивидуальный выбор компонентов

    Как сделать такое.
    Сообщение отредактировано: Dem_max -
      Проще всего сделать вот так:
      ExpandedWrap disabled
        [Types]
        Name: custom; Description: "Это не будет показываться"; Flags: iscustom
         
        [Components]
        Name: scen1;       Description: "Программа А - минимальная установка";  Flags: exclusive; Types: custom
        Name: scen1\comp1; Description: "Компонент 1"; Types: custom
        Name: scen1\comp2; Description: "Компонент 2"; Types: custom
        Name: scen1\comp3; Description: "Компонент 3"; Types: custom
         
        Name: scen2;       Description: "Программа А - максимальная установка";  Flags: exclusive
        Name: scen2\comp1; Description: "Компонент 4";
        Name: scen2\comp2; Description: "Компонент 5";
        Name: scen2\comp3; Description: "Компонент 6";
         
        Name: scen3;       Description: "Plugin для программы Х";  Flags: exclusive
        Name: scen3\comp1; Description: "Компонент 7";
        Name: scen3\comp2; Description: "Компонент 8";
         
        Name: scen4;       Description: "Plugin для программы Y";  Flags: exclusive
        Name: scen4\comp1; Description: "Компонент 9";
         
        Name: scen5;       Description: "Plugin для программы Z";  Flags: exclusive
        Name: scen5\comp1; Description: "Компонент 10";
        Name: scen5\comp2; Description: "Компонент 11";
        Name: scen5\comp3; Description: "Компонент 12";
         
        [Files]
        Source: "file1.exe";  DestDir: "{app}"; Components: scen1\comp1
        Source: "file2.exe";  DestDir: "{app}"; Components: scen1\comp2
        Source: "file3.exe";  DestDir: "{app}"; Components: scen1\comp3
        Source: "file4.exe";  DestDir: "{app}"; Components: scen2\comp1
        Source: "file5.exe";  DestDir: "{app}"; Components: scen2\comp2
        Source: "file6.exe";  DestDir: "{app}"; Components: scen2\comp3
        Source: "file7.exe";  DestDir: "{app}"; Components: scen3\comp1
        Source: "file8.exe";  DestDir: "{app}"; Components: scen3\comp2
        Source: "file9.exe";  DestDir: "{app}"; Components: scen4\comp1
        Source: "file10.exe"; DestDir: "{app}"; Components: scen5\comp1
        Source: "file11.exe"; DestDir: "{app}"; Components: scen5\comp2
        Source: "file12.exe"; DestDir: "{app}"; Components: scen5\comp3
         
        [Icons]
        Name: "{group}\My Program"; Filename: "{app}\file1.exe"; Components: scen1\comp1
         
        [Registry]
        Root: HKCU; Subkey: "Software\Mitrich Software\Test"; ValueName: "TestVal"; ValueType: string; ValueData: "Scenario 1"; Components: scen1
        Root: HKCU; Subkey: "Software\Mitrich Software\Test"; ValueName: "TestVal"; ValueType: string; ValueData: "Scenario 2"; Components: scen2
        Root: HKCU; Subkey: "Software\Mitrich Software\Test"; ValueName: "TestVal"; ValueType: string; ValueData: "Scenario 3"; Components: scen3
        Root: HKCU; Subkey: "Software\Mitrich Software\Test"; ValueName: "TestVal"; ValueType: string; ValueData: "Scenario 4"; Components: scen4
        Root: HKCU; Subkey: "Software\Mitrich Software\Test"; ValueName: "TestVal"; ValueType: string; ValueData: "Scenario 5"; Components: scen5


      Я сначала попробовал сделать чтобы была дополнительная страница с выбором сценария, а после неё, отображение только относящихся к сценарию компонентов при помощи Check-функции, типа этого:
      ExpandedWrap disabled
        [Components]
        Name: comp1;  Description: "Компонент 1";  Types: full; Check: Scenario(0)
        Name: comp2;  Description: "Компонент 2";  Types: full; Check: Scenario(0)
        Name: comp3;  Description: "Компонент 3";  Types: full; Check: Scenario(0)
        Name: comp4;  Description: "Компонент 4";  Types: full; Check: Scenario(1)
        Name: comp5;  Description: "Компонент 5";  Types: full; Check: Scenario(1)
        Name: comp6;  Description: "Компонент 6";  Types: full; Check: Scenario(1)

      ...но оказалось, что для компонентов Check-функция вызывается слишком рано - до отображения интерфейса инсталлятора - так что, для такого варианта нужно будет делать свою собственную страницу выбора компонентов и писать для неё логику.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0219 ]   [ 15 queries used ]   [ Generated: 27.04.24, 13:27 GMT ]