The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,915 other followers

Delphi installs: cleaning up space from %ProgramData%

Posted by jpluimers on 2015/09/16

A while ago I asked this on G+:

I’ve a VM with many Delphi versions and want to clean up space from %ProgramData% to install more. I think somewhere in the comments it was mentioned what to delete from %ProgramData% to lessen the disk space used by Delphi installations. […]

The VM is on an SSD, and the GUID directories there total to about 50 gigabytes.So any reminder what I can delete there would be much appreciated (:

Besides saving disk space, another advantage is that you get far less duplicates when indexing your filesystem with Everything: the directories contain copies of all files also present in the final installation (like %ProgramFiles%, etc).

Thanks to Ilya S, below are my notes for cleaning up a machine that has Delphi 2007 and Delphi 2010-XE6 installed.

In these folders, backup delete all subdirectories but the directory OFFLINE. Don’t delete files. Keep the backups in case you need them.

The sort order is strange, but it is the order that Windows Explorer shows.

  • C:\ProgramData\{0AACF4C1-EFDF-412A-8AAB-F4C23000EA28} – – Help – Delphi 2010
  • C:\ProgramData\{0DE47792-19BD-4AF4-B9CF-6378FBA44825} – – Install – XE6
  • C:\ProgramData\{2D559015-4C05-4AE5-8C8B-7E13E1EAB09D} – – Install – Delphi 2010
  • C:\ProgramData\{2E13DE59-5EDE-4650-A41C-1C997DEDCF0F} – – Install – Delphi XE2
  • C:\ProgramData\{6A883631-DE6E-4096-9348-4D606A536BCB} – – Boost – C++ Builder 2010
  • C:\ProgramData\{6D2F145C-EDED-493E-8DF8-9F0A1C14671C} – – Install – XE
  • C:\ProgramData\{8A88C1B2-7AA0-4FB0-8878-21CE2A1BA9B3} – – Microsoft Windows 10 SDK Installer – 10 Seattle
  • C:\ProgramData\{8BC39306-28C8-4CAB-801D-9BB22E813571} – – Help – XE6 (already empty)
  • C:\ProgramData\{09FECC13-2950-4AE6-BB23-05C206979F18} – – Install – 10 Seattle (bds.exe has 23.0.20618.2753) (OFFLINE) (directory initially had 23+ gigabyte of data)
  • C:\ProgramData\{9F19A9B8-2F31-4CDE-86FC-23D7D5353AB3} – – Install – XE8 Update 1 (despite the version number, bds.exe has 22.0.19908.869) (OFFLINE) (directory initially had 20+ gigabyte of data)
  • C:\ProgramData\{16DDC977-28D8-44E8-8358-8BBFBEE97FE7} – – Help – XE2
  • C:\ProgramData\{42DB1392-BA55-4685-8A8A-884C77934D8C} – – Boost – C++ Builder XE7
  • C:\ProgramData\{64FC42F6-3358-4CC4-B977-B0BB87927B07} – – Help – XE5
  • C:\ProgramData\{6AA75682-1354-47E0-9287-809633ADB137} – – Help – XE7
  • C:\ProgramData\{6CD5A351-75D7-4163-B364-912E17A49312} – – Help – XE7
  • C:\ProgramData\{95E74D47-F7E3-45F0-98A6-C4EB87FC1E6A} – – Install – Delphi XE3
  • C:\ProgramData\{315FB277-DFEF-4F1B-801B-9CD2EA8C3324} – – Boost – C++ Builder XE6 (already empty)
  • C:\ProgramData\{2563F97A-045F-4E4C-9DB1-D5D26C269882} – – DataPack – Delphi 2010
  • C:\ProgramData\{077034D4-0DBA-437F-8372-9C77B5B6FE74} – – Boost – C++ Builder XE5 (already empty)
  • C:\ProgramData\{B0A6C550-7640-4BB9-A44C-C9A7B5257584} – – Boost – C++ Builder XE2
  • C:\ProgramData\{B59CE2E6-B15A-4F23-BD0E-72BF2ADDC3C7} – – Install – Delphi 2007 (note name `offline`, not `OFFLINE`)
  • C:\ProgramData\{C1FF573A-597E-4E37-9A2A-004D3D201024} – – Install – XE7 (OFFLINE)
  • C:\ProgramData\{C49877F5-B9A4-4C4D-AB8D-F7F9DA1A9BBB} – – Install – XE8 (OFFLINE) (bds.exe has 22.0.19027.8951)
  • C:\ProgramData\{CF504BCC-79FC-4455-BF0B-F2866429F689} – – Install – XE7 (other files)
  • C:\ProgramData\{D8AD9B23-35FA-4AA7-9779-6B9D955BAB23} – – Install – Delphi XE5
  • C:\ProgramData\{D58335DC-C8DE-44AB-87E6-A01F75AE0930} – – Boost – C++ Builder XE3
  • C:\ProgramData\{DB0120A5-283F-4C63-9078-87A0BC934D77} – – Help – Delphi 2007
  • C:\ProgramData\{DC8C780A-A252-4488-9036-328E8B1E09E6} – – Help – XE3
  • C:\ProgramData\{DE30B245-ED11-4615-A96C-E16B51AC0D47} – – Boost – C++ Builder XE
  • C:\ProgramData\{E1CF0FD5-A11C-46F1-BD4B-31AF80BAE26F} – – Install – Delphi XE4
  • C:\ProgramData\{E4B6B107-885E-4483-9BCE-EF0880546D3F} – – Help – XE4
  • C:\ProgramData\{E27DEAB7-28C5-4FEF-AA5A-954566B3E9A7} – – Boost – C++ Builder XE4
  • C:\ProgramData\{FF892A0B-471C-4F3D-A7ED-DDF138A74F9C} – – Install – Delphi XE

And on a different machine:

  • C:\ProgramData\{857B0D11-62C8-4FE0-B933-B80313FE43AD} – – Install – Delphi XE4 – BDS 18.0.4854.59655
  • C:\ProgramData\{E4B6B107-885E-4483-9BCE-EF0880546D3F} – – Help – XE4
  • C:\ProgramData\{E27DEAB7-28C5-4FEF-AA5A-954566B3E9A7} – – Boost – C++ Builder XE4
  • C:\ProgramData\{E1CF0FD5-A11C-46F1-BD4B-31AF80BAE26F} – – only had an OFFLINE folder, no other files

So something fishy is going on when you do Delphi upgrades. So I recommend a full uninstall/reinstall instead of upgrades.

After deleting you loose the REPAIR and UPDATE function of the installer, as I found out – when I finally had the right search criteria – in a comment by Torbins on The Itinerant Developer: Free ~4GB of disk space used by XE2 installation files:

You can easily remove all subfolders of this folders with GUID names, probably except OFFLINE one. After that you will lose the ability to repair or update your installation, but uninstall still will be fully functional.

By the way, update is worse then full reinstall, because it creates additional ~1Gb file in the Windows folder. This file can be used to rollback update in case of errors.

And a comment by IL on Delphi Research list: TXMLDocument binding for OmniXML (via: Stack Overflow):

Jeroen, most of install files can be deleted. You may delete all files in ProgramData{guid} folders except OFFLINE folder and files in the folder itself. This is sufficient for installer’s remove functionality and you still can modify and recover your installation from the separate setup on the ISO image or web setup. I’ve learnt this little trick at one of Russian Delphi forums. I’ve deleted the Delphi installation files in ProgramData myself, no issues yet, but I’ve never tried to install the update, modify or recover after that. Going to try with XE7 Update1.

This means that my regular way of “updating” Delphi versions is the correct one:

  1. Uninstall the current Delphi version (but keep the registration and registry data)
  2. Install the updated Delphi version


PS: some comments from the G+ thread:

Jeroen Wiert Pluimers+Lars Fosdal I know most of those are installer caches not touched by running BDS.exe. Since there is no documentation, I’d like some input on how to select what to delete.

Bill Meyer+Jeroen Wiert Pluimers Documentation? I vaguely recall that word….
Lars Fosdal: Are the GUIDs static, or are they from time of install?
Jeroen Wiert Pluimers+Lars Fosdal I’m not sure: there are no docs on them (:
For Delphi 2010 they are {2D559015-4C05-4AE5-8C8B-7E13E1EAB09D} and {6A883631-DE6E-4096-9348-4D606A536BCB} do you have the same ones?
Paul TOTH: I’ve deleted one of those big directory once for a Delphi XE7, but then the SP1 can’t remove the old version and I had to restart a new VM.
Search for directories with setup.exe and mia.lib – Setup.exe has the Delphi release version in the file version i.e. XE 7 is, XE 6 is 7.1 (15)
XE7.1 Boost
XE7.1 Android
{CF504BCC-79FC-4455-BF0B-F2866429F689}XE 6.1 (14)
XE 6.1 Boost
XE 6.1 Android
Nicholas Ring: From what I can recall, if you delete them, you will not be able to do an modify/update on those versions. The reason being is that the installer uses those to verify the version it is updating.From what I have read in the past, people have moved them off (ie, backed them up), so if they are required in the future, you just restore the one(s) you require and remove them afterwards.Hope this helps some…
Ilya S+Jeroen Wiert Pluimers you can safely delete any folders inside GUID folder except OFFLINE folder and the files right inside the GUID folder. This is enough for uninstall/modify to get started.

3 Responses to “Delphi installs: cleaning up space from %ProgramData%”

  1. abouchez said

    Welcome to the GUID hell! :(

  2. Silver Warior said

    Is this still required for Delphi XE8 and newer? The first thing I noticed with Delphi XE8 is that installer no longer left huge amount of files under the %ProgramData% directory. Same goes for Delphi 10 Seattle.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: