This is not supported by ClickOnce (although I keep asking about it all the time).
I compiled the following code many years ago, but I never had time to try it. I would put a try / catch around it if that causes a problem. Let me know if this works out .; -)
RegistryKey myUninstallKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall"); string[] mySubKeyNames = myUninstallKey.GetSubKeyNames(); for (int i = 0; i < mySubKeyNames.Length; i++) { RegistryKey myKey = myUninstallKey.OpenSubKey(mySubKeyNames , true); object myValue = myKey.GetValue("DisplayName"); if (myValue != null && (string)myValue == _ApplicationName) { myKey.SetValue("DisplayIcon", _ExecutablePath + @"\App.ico"); break; } }
source share