clickonce从何处获取寄存器DisplayNameHKEY_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选项
c# - 从哪里clickonce获得regedit在DisplayName中使用的值?-LMLPHP
另外,clickonce应用程序也不需要在windows注册表中浪费时间。这样做可能会阻止自动更新。

关于c# - 从哪里clickonce获得regedit在DisplayName中使用的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33575870/

10-12 05:04