clickonce がDisplayNameレジスタで使用される値を取得する場所からHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XXXXXXXX? DisplayNameVSでアプリケーションのタイトルとアセンブリ名を変更しようとしました(プロジェクト - >プロパティ - >アプリケーション - >アセンブリ情報)が、値で使用される名前を変更しても変更されませんでした。
プログラムの追加/削除時にアプリケーションのアンインストールアイコンを変更するこのコードにアプリケーション名をハードコードするのを避けたいので、これが必要です
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[i], true);
object myValue = myKey.GetValue("DisplayName");
if (myValue != null && myValue.ToString() == applictionName) /* this must be the same used by clickonce to set DisplayName value */
{
myKey.SetValue("DisplayIcon", iconSourcePath);
break;
}
}
