[英]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.