繁体   English   中英

如何使MUICache无效?

[英]How to invalidate MUICache?

通过右键单击项目->应用程序->程序集信息->标题,我已经修改了C#应用程序名称。

如果已经安装了应用程序,则它不会更新名称,因为它是从未刷新的MUICache中提取应用程序名称。

我正在尝试找出一种方法,使我可以通过编程使MUICache无效,以便它可以适当地更新应用程序名称。

谢谢

您可以使用以下方法删除包含应用程序可执行文件路径的MuiCache项中的值。

MuiCache删除该值后,通过Windows 打开方式对话框浏览到您的应用程序,将使用可执行文件的标题将更新的可执行文件路径重新添加到MuiCache

using Microsoft.Win32;
using System.Linq;
using System.Reflection;

const string MuiCacheKeyPath =
    @"Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache";

static void DeleteExecutablePathFromMuiCache()
{
    string exePath = Assembly.GetExecutingAssembly().Location; // (1)

    using (RegistryKey muiCacheKey = Registry.CurrentUser
        .OpenSubKey(MuiCacheKeyPath, writable: true))
    {
        if (muiCacheKey.GetValueNames().Contains(exePath))
        {
            muiCacheKey.DeleteValue(exePath);
        }
    }
}

另外,如果要直接以编程方式更新标题,而不是DeleteValue(exePath) ,请调用:

muiCacheKey.SetValue(exePath, yourNewTitle);

(1)从这个答案到问题。 如何在.NET控制台应用程序中获取应用程序的路径?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM