Detecting if I need to download an installer and spawning with Inno Setup, including examining the XML files
11:21 18 Apr 2026

My installer includes the following files:

Source: "{#InnoPath}\Public Talk Titles\MSA_PublicTalks_???.xml"; DestDir: "{app}\Public Talk Titles"; Flags: overwritereadonly ignoreversion Source: "{#InnoPath}\Public Talk Titles\MSA_PublicTalks_Info.xml"; DestDir: "{#CommonDataDir}"; Flags: overwritereadonly ignoreversion 

The common folder is defined as:

#define CommonDataDir "{commonappdata}\" + MSA

Now, on my website at a given url there is a XML file MSA_PublicTalks_DBInfo.xml. Is it possible to do the following:

  1. Download the XML file
  2. Examine all installed talk XML file versions, eg

Compare those versions against the respective version in the DBInfo file, eg:



  
  
  
  

The language code can be exacted from the file names, eg:

MSA_PublicTalks_ENG.xml

If atleast one language needs updating them we should download the installer. To recap:

  • install my xml files
  • download the dbinfo
  • iterate the installed xml files, lookup the version number in db info and compare, if atleast 1 is newer version we should mark the talk update installer to be downloaded.

When we run the installer it would do equivalent of:

// Try to run the installer
CString strParams;
strParams.Format(_T("/SP- /VERYSILENT /InstallPath=\"%s\""), (LPCTSTR)strProgramFolder);
if (!theApp.ExecuteProgram(strWorkingFolder + strSetupExe, strParams))
{
    // Problem running the installer
    AfxMessageBox(IDS_STR_UNABLE_RUN_PTINFO_INSTALLER, MB_OK | MB_ICONERROR);
    return;
}

I am sorry that I don't have a working sample but my script is complex. I am simply trying to automate the need to download the run the talks database installer to update the talk database files if needed.

One example:

  • Open MSA_PublicTalks_ENG.xml
  • Extract Version attribute.
  • Open DBInfo
  • Locate the Database entry with language eng, and compare Version values.
  • If newer, then we must add the installer to download and install.
inno-setup-v6