Это не поддерживается ClickOnce (хотя я продолжаю просить об этом).
Я собрал следующий код много лет назад, но у меня никогда не было времени его опробовать. Я бы поставил try
/ catch
на случай, если это вызовет проблему. Дайте мне знать, если это работает. ; -)
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;
}
}