Вопрос Создания инсталятора Update для обычного инсталятора

Alexandr_57

Новичок
Здравствуйте.
Вот код обычного инсталятора:
Код:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "RPG Maker MV"
#define MyAppVersion "1.3.0 Update 1.3.1"
#define MyAppPublisher "KADOKAWA, Yoji Ojima"
#define MyAppURL "http://rpgmakerweb.com"
#define MyAppExeName "RPGMV.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{6CFCAEC5-02BB-4363-A70C-D3A0C1559085}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
AppMutex=RPGMVMutex
DefaultDirName={pf}\RPG_Makers\MV
DefaultGroupName=RPG Maker\RPG Maker MV
AllowNoIcons=yes
OutputBaseFilename=RMMV
OutputManifestFile=Manifest.RMMV.txt
ShowTasksTreeLines=yes
UninstallDisplayIcon={app}\RPGMV.exe
WizardImageFile=MV\Logo.bmp
WizardSmallImageFile=MV\Icon.bmp
Compression=lzma/ultra
DiskSpanning=yes
DiskSliceSize=max

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"; LicenseFile: "MV\License.English.rtf";
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"; LicenseFile: "MV\License.Russian.rtf"; InfoBeforeFile: "MV\Info.Russian.rtf"

[CustomMessages]
russian.ComponentsProgramm=|Программа RPG Maker MV (Ресурсы Trial установщика)|Язык:
russian.ComponentsLRU=Русский:
russian.ComponentsLRU1=Русский от разработчиков
russian.ComponentsLRU2=Русский от Strelokhalfer (Исправленный русский)
russian.ComponentsLEN=Английский
;russian.ComponentsLJP=Японский
russian.ComponentsLDE=Немецкий
russian.ComponentsLES=Испанский
russian.ComponentsLFR=Французкий
russian.ComponentsLIT=Итальянский
russian.ComponentsLPT=Португальский
russian.ComponentsDLC=DLC (Почти все допполнительные ресурсы на 27.09.2016)
russian.ComponentsDLCv1=Установить в DLC (Придётся вручную добавлять их в проект)
russian.ComponentsDLCv2=Установить в RTP (Добавление происходит автоматически но проект будет большого размера)
russian.ComponentsDLCv3=Установить в RTP только файлы dlc: "BaseResource" и "BaseResource_Compressed"
russian.InformationRevisedRussian=Об исправленном русификаторе
russian.CreateDesktopFolder=Создать значок папки на &Рабочем столе
russian.Folder=Папка %1

english.ComponentsProgramm=|Program RPG Maker MV (Trial Resources Installer)| Language:
;english.ComponentsLRU=Russian:
;english.ComponentsLRU1=Russian developers
;english.ComponentsLRU2=Russian from Strelokhalfer (Revised Russian)
english.ComponentsLEN=English
;english.ComponentsLJP=Japanese
english.ComponentsLDE=German
english.ComponentsLES=Spanish
english.ComponentsLFR=French
english.ComponentsLIT=Italian
english.ComponentsLPT=Portuguese
english.ComponentsDLC=DLC (Almost all of the additional resources on 23.08.2016)
english.ComponentsDLCv1=Install the DLC (We'll have to manually add them to the project)
english.ComponentsDLCv2=Install the RTP (The addition is done automatically but the project is large)
english.ComponentsDLCv3=files only dlc: "BaseResource" and "BaseResource Compressed"
;english.InformationRevisedRussian=On the revised Russian
english.CreateDesktopFolder=Create a folder icon on the desktop
english.Folder=Folder %1


[Types]
Name: "programm"; Description: "Программа"; Flags: iscustom

[Components]
Name: "Programm"; Description: "{cm:ComponentsProgramm}"; Types: programm; Flags: fixed
Name: "Programm\RU"; Description: "{cm:ComponentsLRU}"; Languages: russian; Flags: exclusive
Name: "Programm\RU\1"; Description: "{cm:ComponentsLRU1}"; Languages: russian; Flags: exclusive
Name: "Programm\RU\2"; Description: "{cm:ComponentsLRU2}"; Languages: russian; Flags: exclusive
Name: "Programm\EN"; Description: "{cm:ComponentsLEN}"; Flags: exclusive
;Name: "Programm\JP"; Description: "{cm:ComponentsLJP}"; Flags: exclusive
Name: "Programm\DE"; Description: "{cm:ComponentsLDE}"; Flags: exclusive
Name: "Programm\ES"; Description: "{cm:ComponentsLES}"; Flags: exclusive
Name: "Programm\FR"; Description: "{cm:ComponentsLFR}"; Flags: exclusive
Name: "Programm\IT"; Description: "{cm:ComponentsLIT}"; Flags: exclusive
Name: "Programm\IT"; Description: "{cm:ComponentsLIT}"; Flags: exclusive
Name: "Programm\PT"; Description: "{cm:ComponentsLIT}"; Flags: exclusive
Name: "DLC"; Description: "{cm:ComponentsDLC}"; Types: programm;
Name: "DLC\v1"; Description: "{cm:ComponentsDLCv1}"; Flags: exclusive;
Name: "DLC\v2"; Description: "{cm:ComponentsDLCv2}"; Flags: exclusive;
Name: "DLC\v3"; Description: "{cm:ComponentsDLCv3}"; Flags: exclusive;

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked;
Name: "desktopiconfolder"; Description: "{cm:CreateDesktopFolder}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked;
[Dirs]
Name: "{app}\NewData\img\pictures"; Components: DLC\v2;
[Files]
Source: "MV\Base\*"; DestDir: "{app}"; Components: Programm; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

Source: "MV\CrackAndLangRu\RPGMVru1.exe"; DestName: "RPGMV.exe"; DestDir: "{app}"; Flags: ignoreversion sortfilesbyextension
Source: "MV\CrackAndLangRu\RPGMVru1.exe"; DestName: "RPGMV.exe"; DestDir: "{app}"; Components: Programm\RU\1; Flags: ignoreversion sortfilesbyextension
Source: "MV\CrackAndLangRu\RPGMVru2.exe"; DestName: "RPGMV.exe"; DestDir: "{app}"; Components: Programm\RU\2; Flags: ignoreversion sortfilesbyextension
Source: "MV\CrackAndLangRu\ПРОЧТИ МЕНЯ.txt"; DestDir: "{app}"; Components: Programm\RU\2; Flags: ignoreversion sortfilesbyextension

Source: "MV\dlc\*"; DestDir: "{app}\dlc"; Components: DLC\v1; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

Source: "MV\dlc\BaseResource\*"; DestDir: "{app}\NewData"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\BaseResource_Compressed\*"; DestDir: "{app}\NewData"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension


Source: "MV\dlc\Additional\CodeOfPrincess\characters\*"; DestDir: "{app}\dlc\Additional\CodeOfPrincess\characters"; Components: DLC\v2; Check: exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\CodeOfPrincess\characters\*"; DestDir: "{app}\NewData\img\characters"; Components: DLC\v2; Check: not exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Cover Art Characters\audio\bgm\*"; DestDir: "{app}\dlc\Additional\Cover Art Characters\audio\bgm"; Components: DLC\v2; Check: exists('{app}\NewData\audio\bgm\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Cover Art Characters\audio\bgm\*"; DestDir: "{app}\NewData\audio\bgm"; Components: DLC\v2; Check: not exists('{app}\NewData\audio\bgm\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Cover Art Characters\img\characters\*"; DestDir: "{app}\dlc\Additional\Cover Art Characters\img\characters"; Components: DLC\v2; Check: exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Cover Art Characters\img\characters\*"; DestDir: "{app}\NewData\img\characters"; Components: DLC\v2; Check: not exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Cover Art Characters\img\faces\*"; DestDir: "{app}\dlc\Additional\Cover Art Characters\img\faces"; Components: DLC\v2; Check: exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Cover Art Characters\img\faces\*"; DestDir: "{app}\NewData\img\faces"; Components: DLC\v2; Check: not exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Cover Art Characters\img\pictures\*"; DestDir: "{app}\dlc\Additional\Cover Art Characters\img\pictures"; Components: DLC\v2; Check: exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Cover Art Characters\img\pictures\*"; DestDir: "{app}\NewData\img\pictures"; Components: DLC\v2; Check: not exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Cover Art Characters\img\sv_actors\*"; DestDir: "{app}\dlc\Additional\Cover Art Characters\img\sv_actors"; Components: DLC\v2; Check: exists('{app}\NewData\img\sv_actors\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Cover Art Characters\img\sv_actors\*"; DestDir: "{app}\NewData\img\sv_actors"; Components: DLC\v2; Check: not exists('{app}\NewData\img\sv_actors\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Cover Art Characters\img\system\*"; DestDir: "{app}\dlc\Additional\Cover Art Characters\img\system"; Components: DLC\v2; Check: exists('{app}\NewData\img\system\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Cover Art Characters\img\system\*"; DestDir: "{app}\NewData\img\system"; Components: DLC\v2; Check: not exists('{app}\NewData\img\system\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Essentials Add-On\NewData\img\faces\*"; DestDir: "{app}\dlc\Additional\Essentials Add-On\faces"; Components: DLC\v2; Check: exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Essentials Add-On\NewData\img\faces\*"; DestDir: "{app}\NewData\img\faces"; Components: DLC\v2; Check: not exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Essentials Add-On\NewData\img\tilesets\*"; DestDir: "{app}\dlc\Additional\Essentials Add-On\tilesets"; Components: DLC\v2; Check: exists('{app}\NewData\img\tilesets\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Essentials Add-On\NewData\img\tilesets\*"; DestDir: "{app}\NewData\img\tilesets"; Components: DLC\v2; Check: not exists('{app}\NewData\img\tilesets\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\Essentials Add-On\NewData\img\titles1\*"; DestDir: "{app}\dlc\Additional\Essentials Add-On\titles1"; Components: DLC\v2; Check: exists('{app}\NewData\img\titles1\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\Essentials Add-On\NewData\img\titles1\*"; DestDir: "{app}\NewData\img\titles1"; Components: DLC\v2; Check: not exists('{app}\NewData\img\titles1\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\EternalDestiny\NewData\img\Characters\*"; DestDir: "{app}\dlc\Additional\EternalDestiny\Characters"; Components: DLC\v2; Check: exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\EternalDestiny\NewData\img\Characters\*"; DestDir: "{app}\NewData\img\characters"; Components: DLC\v2; Check: not exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\EternalDestiny\NewData\img\faces\*"; DestDir: "{app}\dlc\Additional\EternalDestiny\faces"; Components: DLC\v2; Check: exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\EternalDestiny\NewData\img\faces\*"; DestDir: "{app}\NewData\img\faces"; Components: DLC\v2; Check: not exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\EternalDestiny\NewData\img\pictures\*"; DestDir: "{app}\dlc\Additional\EternalDestiny\pictures"; Components: DLC\v2; Check: exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\EternalDestiny\NewData\img\pictures\*"; DestDir: "{app}\NewData\img\pictures"; Components: DLC\v2; Check: not exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\ExtraAssets\audio\bgm\*"; DestDir: "{app}\dlc\Additional\ExtraAssets\audio\bgm"; Components: DLC\v2; Check: exists('{app}\NewData\audio\bgm\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\ExtraAssets\audio\bgm\*"; DestDir: "{app}\NewData\audio\bgm"; Components: DLC\v2; Check: not exists('{app}\NewData\audio\bgm\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\ExtraAssets\img\pictures\*"; DestDir: "{app}\dlc\Additional\ExtraAssets\img\pictures"; Components: DLC\v2; Check: exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\ExtraAssets\img\pictures\*"; DestDir: "{app}\NewData\img\pictures"; Components: DLC\v2; Check: not exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\KadokawaPlugins\*"; DestDir: "{app}\dlc\Additional\KadokawaPlugins"; Components: DLC\v2; Check: exists('{app}\NewData\js\plugins\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\KadokawaPlugins\*"; DestDir: "{app}\NewData\js\plugins"; Components: DLC\v2; Check: not exists('{app}\NewData\js\plugins\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\animations\*"; DestDir: "{app}\dlc\Additional\RPG Maker Freebies\animations"; Components: DLC\v2; Check: exists('{app}\NewData\img\animations\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\animations\*"; DestDir: "{app}\NewData\img\animations"; Components: DLC\v2; Check: not exists('{app}\NewData\img\animations\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\Characters\*"; DestDir: "{app}\dlc\Additional\RPG Maker Freebies\Characters"; Components: DLC\v2; Check: exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\Characters\*"; DestDir: "{app}\NewData\img\characters"; Components: DLC\v2; Check: not exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\enemies\*"; DestDir: "{app}\dlc\Additional\RPG Maker Freebies\enemies"; Components: DLC\v2; Check: exists('{app}\NewData\img\enemies\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\enemies\*"; DestDir: "{app}\NewData\img\enemies"; Components: DLC\v2; Check: not exists('{app}\NewData\img\enemies\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\Faces\*"; DestDir: "{app}\dlc\Additional\RPG Maker Freebies\Faces"; Components: DLC\v2; Check: exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\Faces\*"; DestDir: "{app}\NewData\img\faces"; Components: DLC\v2; Check: not exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\sv_actors\*"; DestDir: "{app}\dlc\Additional\RPG Maker Freebies\sv_actors"; Components: DLC\v2; Check: exists('{app}\NewData\img\sv_actors\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\RPG Maker Freebies\NewData\img\sv_actors\*"; DestDir: "{app}\NewData\img\sv_actors"; Components: DLC\v2; Check: not exists('{app}\NewData\img\sv_actors\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\TeamFortress2\characters\*"; DestDir: "{app}\dlc\Additional\TeamFortress2\characters"; Components: DLC\v2; Check: exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\TeamFortress2\characters\*"; DestDir: "{app}\NewData\img\characters"; Components: DLC\v2; Check: not exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\TeamFortress2\pictures\*"; DestDir: "{app}\dlc\Additional\TeamFortress2\pictures"; Components: DLC\v2; Check: exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\TeamFortress2\pictures\*"; DestDir: "{app}\NewData\img\pictures"; Components: DLC\v2; Check: not exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\UmiharaKawase\characters\*"; DestDir: "{app}\dlc\Additional\UmiharaKawase\characters"; Components: DLC\v2; Check: exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\UmiharaKawase\characters\*"; DestDir: "{app}\NewData\img\characters"; Components: DLC\v2; Check: not exists('{app}\NewData\img\characters\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\UmiharaKawase\faces\*"; DestDir: "{app}\dlc\Additional\UmiharaKawase\faces"; Components: DLC\v2; Check: exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\UmiharaKawase\faces\*"; DestDir: "{app}\NewData\img\faces"; Components: DLC\v2; Check: not exists('{app}\NewData\img\faces\'); Flags: sortfilesbyextension

Source: "MV\dlc\Additional\UmiharaKawase\pictures\*"; DestDir: "{app}\dlc\Additional\UmiharaKawase\pictures"; Components: DLC\v2; Check: exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension
Source: "MV\dlc\Additional\UmiharaKawase\pictures\*"; DestDir: "{app}\NewData\img\pictures"; Components: DLC\v2; Check: not exists('{app}\NewData\img\pictures\'); Flags: sortfilesbyextension


Source: "MV\dlc\Additional\Essentials Add-On\Other\*"; DestDir: "{app}\dlc\Additional\Essentials Add-On"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\Additional\EternalDestiny\Other\*"; DestDir: "{app}\dlc\Additional\EternalDestiny"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\Additional\KadokawaPlugins_New\*"; DestDir: "{app}\dlc\Additional\KadokawaPlugins_New"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\Additional\RPG Maker Freebies\Other\*"; DestDir: "{app}\dlc\Additional\RPG Maker Freebies"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\Additional\RPGmakerWeb_plugins\*"; DestDir: "{app}\dlc\Additional\RPGmakerWeb_plugins"; Components: DLC\v2; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension


;Source: "MV\dlc\Additional\\*"; DestDir: "{app}\NewData\"; Components: DLC\v2; Check: not exists('{app}\NewData\\'); Flags: sortfilesbyextension
;Source: "MV\dlc\Additional\\*"; DestDir: "{app}\dlc\Additional\"; Components: DLC\v2; Check: exists('{app}\NewData\\'); Flags: sortfilesbyextension


Source: "MV\dlc\Additional\*"; DestDir: "{app}\dlc\Additional"; Components: DLC\v3; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\BaseResource\*"; DestDir: "{app}\NewData"; Components: DLC\v3; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "MV\dlc\BaseResource_Compressed\*"; DestDir: "{app}\NewData"; Components: DLC\v3; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

Source: "MV\Languages\RULocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\RU;
Source: "MV\Languages\ENLocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\EN;
;Source: "MV\Languages\JPLocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\JP;
Source: "MV\Languages\DELocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\DE; 
Source: "MV\Languages\ESLocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\ES;
Source: "MV\Languages\FRLocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\FR;
Source: "MV\Languages\ITLocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\IT;
Source: "MV\Languages\PTLocale"; DestName: "Locale"; DestDir: "{app}"; Components: Programm\PT;

[Registry]
Root: HKLM; Subkey: "Software\KADOKAWA\RPGMV"; ValueName: "ApplicationPath"; ValueType: String; ValueData: "{app}"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RPGMV.Project"; ValueType: String; ValueData: "RPGMV Project"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RPGMV.Project\DefaultIcon"; ValueType: String; ValueData: """{app}\RPGMV.exe"",1"; Flags: uninsdeletekey
Root: HKCR; Subkey: "RPGMV.Project\shell\open\command"; ValueType: String; ValueData: """{app}\RPGMV.exe"" ""%1"""; Flags: uninsdeletekey
Root: HKCR; Subkey: ".rpgproject"; ValueType: String; ValueData: "RPGMV.Project"; Flags: uninsdeletekey

[Icons]
Name: "{group}\{cm:LaunchProgram,{#MyAppName}}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{group}\{cm:InformationRevisedRussian,{#MyAppName}}"; Filename: "{app}\ПРОЧТИ МЕНЯ.txt"; Components: Programm\RU\2;
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{commondesktop}\{cm:Folder,{#MyAppName}}";  Filename: "{app}"; Tasks: desktopiconfolder

[UninstallDelete]
Type: filesandordirs; Name: "{app}"

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
[code]

function exists(s: string): boolean;
begin
  Result := FileExists(ExpandConstant(s)+ExtractFileName(CurrentFileName));
end;
Мне нужно чтобы инсталятор update обновлял программу но не создавал дополнительных инсталяров чтобы при удалении удалялась вся программа или если удаление Update отдельно то нужно чтобы инсталятор создавал копии заменяемых файлов чтобы при деинсталяции происходило удаление update и возвращение старой версии
Мне любой из 2х способов нужно. Какой по легче. Помогиете.
 
Сверху