clickonce从何处获取寄存器DisplayName
中HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XXXXXXXX
中使用的值?我尝试在vs(project->properties->application->assembly information)上更改应用程序标题和程序集名称,但这两个更改都没有更改DisplayName
值中使用的名称。
我需要这个,因为我想避免在这段代码中硬编码我的应用程序名,这段代码会在添加/删除程序中更改我的应用程序的Unistall图标
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;
}
}
最佳答案
clickonce从哪里从regedit获取displayname中使用的值?
若要设置ClickOnce应用程序的显示名称,请在发布之前在Visual Studio中的“发布选项”中指定它。这将更新ClickOnce清单-有关ClickOnce应用程序的信息。此信息更为重要,实质上可以查看您在程序集信息中指定的任何详细信息。
.properties.publish.options选项
另外,clickonce应用程序也不需要在windows注册表中浪费时间。这样做可能会阻止自动更新。
关于c# - 从哪里clickonce获得regedit在DisplayName中使用的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33575870/