From 5fc0367abd5417124ad503e6361e2f9045cb2736 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Thu, 19 Feb 2026 17:52:17 +0800 Subject: [PATCH] =?UTF-8?q?=20=201.=20GUID=20key=20(...Uninstall\{GUID})?= =?UTF-8?q?=20is=20MSI-native=20metadata=20generated=20by=20Windows=20Inst?= =?UTF-8?q?aller.=20=20=202.=20Non-GUID=20key=20(...Uninstall\RustDesk)=20?= =?UTF-8?q?is=20explicitly=20written=20by=20RustDesk=E2=80=99s=20MSI=20com?= =?UTF-8?q?patibility=20component=20in=20res/msi/Package/Components/Regs.w?= =?UTF-8?q?xs:44,=20populated=20by=20preprocess.py=20--arp=20from=20.githu?= =?UTF-8?q?b/workflows/=20=20=20=20=20=20flutter-build.yml:262.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So they were not using the same EstimatedSize logic: - MSI GUID key: MSI-calculated size (KB). - RustDesk key: custom script value from res/msi/preprocess.py:339 (previously bytes, now fixed to KB). That mismatch is exactly why you saw different sizes. --- res/msi/preprocess.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/res/msi/preprocess.py b/res/msi/preprocess.py index cb2140d21..c590549f4 100644 --- a/res/msi/preprocess.py +++ b/res/msi/preprocess.py @@ -336,7 +336,9 @@ def gen_custom_ARPSYSTEMCOMPONENT_True(args, dist_dir): f'{indent}\n' ) - estimated_size = get_folder_size(dist_dir) + # EstimatedSize in uninstall registry must be in KB. + estimated_size_bytes = get_folder_size(dist_dir) + estimated_size = max(1, (estimated_size_bytes + 1023) // 1024) lines_new.append( f'{indent}\n' )