;================================= 01.02.21 ===== ; CMS S.p.A. - UX-HMI Office ; ; Setup for Active ; Inno Setup Compiler version 5.6.0 ;================================================== #define AppName "CMS Active" #define FolderName "Thermo.Active" #define MyAppPublisher "CMS" #define MyAppURL "https://www.scmgroup.com/it/cms" #define MyAppExeName "Thermo.Active.exe" #define ProjectPath "" #define MySourcePath ProjectPath + "bin" #define WwwRootPath ProjectPath + "wwwroot" #define IconsPath ProjectPath + "Desktop_Link" #define ToolInstallerPath "SetupTools" #define MyAppVersion GetFileVersion( MySourcePath + '\Thermo.Active.exe') #define OutBaseDir "C:\CMS\AutoBuild" #define OutDir OutBaseDir + "\" + MyAppVersion ; Support installers ; .Net ; MariaDb ; cms_inv_diag #define DotNetInstallerName "NDP462-KB3151800-x86-x64-AllOS-ENU.exe" #define MariaDBInstallerName "mariadb-10.3.13-winx64.msi" #define CmsInvDiagPath "cms_inv_diag" [Setup] AppName={#AppName} AppVersion={#MyAppVersion} AppVerName={#AppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DisableDirPage=true DisableProgramGroupPage=yes Compression=lzma SolidCompression=true OutputDir={#OutDir} UsePreviousAppDir=no OutputBaseFilename=ActiveSetup_{#MyAppVersion} VersionInfoVersion={#MyAppVersion} VersionInfoCompany={#MyAppPublisher} VersionInfoTextVersion={#MyAppVersion} VersionInfoCopyright={#MyAppPublisher} DefaultDirName = C:\CMS\{#FolderName}\{#FolderName} WindowVisible=false PrivilegesRequired=admin ; Setup installation type [Types] Name: custom; Description: CMS installation; Flags: iscustom ; Set NC types, this types are used to configure server config file [Components] [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" [CustomMessages] english.CreateStartupIcon=Create Startup &icon italian.CreateStartupIcon = Crea il collegamento in &Esecuzione Automatica english.InstallDotNet = Install .Net 4.6.2 english.InstallMariaDB = Install MariaDB italian.InstallDotNet = Installa .Net 4.6.2 italian.InstallMariaDB = Installa MariaDB italian.InstallingMariaDB = Installando MariaDB english.InstallingMariaDB = Installing MariaDB italian.InstallingDotNet = Installando .Net english.InstallingDotNet = Installing .Net [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Name: sinumerikicons; Description: {cm:CreateSinumerikIcons}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; [Files] Source: "{#MySourcePath}\Thermo.Active.exe"; DestDir: "{app}"; Flags: ignoreversion ; Path to exe resources (dll, xml, config) Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion; ; Configuration files Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: ignoreversion; ; Languages Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion; ; Libs Source: "{#MySourcePath}\lib\*.*"; DestDir: "{app}\lib\"; Flags: ignoreversion; ; Client copy Source: "{#MySourcePath}\Client\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; AfterInstall: DeleteLocalStorage ; WWWRoot Files Source: "{#WwwRootPath}\favicon.ico"; DestDir: "{app}\view\"; Flags: ignoreversion; Source: "{#WwwRootPath}\index.html"; DestDir: "{app}\view\"; Flags: ignoreversion; ; WWWRoot Directories Source: "{#WwwRootPath}\dist\*"; DestDir: "{app}\view\dist\"; Flags: recursesubdirs ignoreversion; Source: "{#WwwRootPath}\libs\*"; DestDir: "{app}\view\libs\"; Flags: recursesubdirs ignoreversion; Source: "{#WwwRootPath}\assets\*"; DestDir: "{app}\view\assets\"; Flags: recursesubdirs ignoreversion; Source: "{#WwwRootPath}\scripts\*"; DestDir: "{app}\view\scripts\"; Flags: recursesubdirs ignoreversion; ;.Net Installer Source: {#ToolInstallerPath}\{#DotNetInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall; ;Check: FrameworkIsNotInstalled Source: {#ToolInstallerPath}\{#MariaDBInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall; ; --- UTILS ; Fanuc scripts - TEAMVIEWER Source: "{#ProjectPath}Utility\*"; DestDir: "{app}\..\Utility\"; Flags: recursesubdirs ignoreversion; [Icons] ; Default icons Name: {group}\{#AppName}; Filename: {app}\{#MyAppExeName}; Name: {userdesktop}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon; Name: {userstartup}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: startupicon; [Run] ; Install .net Filename: {tmp}\{#DotNetInstallerName}; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingDotNet}; Check: NetFrameworkNeedInstall ;Check: NetFrameworkIsMissing ; Install MariaDb Filename: "msiexec.exe"; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingMariaDB}; Parameters: "/i {tmp}\{#MariaDBInstallerName}"; Check: CheckHeidiSQLNeedInstall; /// MinVersion: 10 [Registry] Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Active"; ValueData: "C:\CMS\ACTIVE\Active\Active.exe"; MinVersion: 10; [Code] ///////////// SiemensPath /////////////////////////////// var CheckBoxIni: TCheckBox; OverwriteConfig: Boolean; ///////////////// Check .NET Framework 4.6.2 //////////////////////////////////// function NetFrameworkNeedInstall(): Boolean; var bSuccess: Boolean; regVersion: Cardinal; begin Result := True; bSuccess := RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4\Full', 'Release', regVersion); if (True = bSuccess) and (regVersion >= 394802) then begin Result := False; end; end; ///////////// Check heidiSQL ///////////////// function CheckHeidiSQLNeedInstall: Boolean; begin if FileExists(ExpandConstant('C:\Program Files (x86)\Common Files\MariaDBShared\HeidiSQL\heidisql.exe')) then Result:= false else begin Result:= True end; end; /////////////////// CheckConfigExistence ///////////////////////////// function OverwriteConfigModal: Boolean; begin if DirExists(ExpandConstant('C:\CMS\Thermo.Active\Thermo.Active\Config')) then begin // Ask the user a Yes/No question, defaulting to No if not (MsgBox('La cartella "Config" esiste già. Vuoi sovrascriverla?', mbConfirmation, MB_YESNO) = IDYES) then begin // user clicked NO Result:= false; Exit; end; end; Result:= True; end; function GetOverwriteConfig: Boolean; begin Result:= OverwriteConfig; end; /////////////////// DeleteLocalStorage ////////////////////// procedure DeleteLocalStorage; begin DelTree(ExpandConstant('{app}\Client\LocalStorage'), True, True, True); end; ///////////// InitializeWizard ////////////////////////// procedure InitializeWizard(); begin OverwriteConfig := OverwriteConfigModal; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssPostInstall then begin DeleteLocalStorage; end; end;