Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.251.68] |
|
Сообщ.
#1
,
|
|
|
Подскажите пожалуйста, необходимо при запуске инсталлятора предлагать разный сценарий установки, т.е. это например:
1. Программа А - минимальная установка Компоненты для установки (настраиваемый выбор компонентов): Компонент 1 Компонент 2 Компонент 3 2. Программа А - максимальная установка Компоненты для установки (настраиваемый выбор компонентов): Компонент 4 Компонент 5 Компонент 6 3. Plugin для программы Х Компоненты для установки (настраиваемый выбор компонентов): Компонент 7 Компонент 8 4. Plugin для программы Y Компоненты для установки (настраиваемый выбор компонентов): Компонент 9 5. Plugin для программы Z Компоненты для установки (настраиваемый выбор компонентов): Компонент 10 Компонент 11 Компонент 12 т.е. для каждого пункта будут свои копируемые файлы и значения реестра, а так же индивидуальный выбор компонентов Как сделать такое. |
Сообщ.
#2
,
|
|
|
Проще всего сделать вот так:
[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-функции, типа этого: [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-функция вызывается слишком рано - до отображения интерфейса инсталлятора - так что, для такого варианта нужно будет делать свою собственную страницу выбора компонентов и писать для неё логику. |