Hello,
What you're describing isn't expected behavior. During a successful uninstall, the corresponding entry under:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall{GUID}
(or the 64-bit equivalent) should normally be removed by the installer.
If the registry key remains while only the UninstallString value is removed, it generally indicates that the uninstall completed only partially or that the installer encountered an issue during its cleanup phase. A few things to investigate are:
- Compare the affected and unaffected systems for differences in the installed .NET version, installation source (offline installer, Visual Studio, Windows Update, Winget, etc.), and Windows build.
- Check the Windows Installer logs and Event Viewer (Application and Setup logs) for MSI or installer-related errors during the uninstall.
- If verbose MSI logging is available (msiexec /x {ProductCode} /L*V uninstall.log), review the log to determine whether the registry removal actions completed successfully.
- Verify that no endpoint security, application control, or registry protection software is preventing modification of the uninstall registry key.
- Confirm that the account performing the uninstall has sufficient administrative privileges and that no Group Policy or registry permissions differ between affected and unaffected machines.
If this behavior is reproducible only with specific .NET Runtime or SDK versions, it would also be helpful to identify the exact version (for example, .NET 8 or .NET 9) and whether it was installed via the standalone installer, Visual Studio, or another deployment mechanism.
If you can provide the .NET version, Windows build, and whether the affected components were installed via MSI, Visual Studio, Windows Update, or another deployment method, it may help narrow down whether this is a product-specific issue or an environmental one.
Please "Accept the Answer" if this information helped you. This will help us and others in the community as well.