C# Visual Studio中未更新文件类型图标

C# Visual Studio中未更新文件类型图标,c#,visual-studio,registry,file-type,.ico,C#,Visual Studio,Registry,File Type,.ico,长话短说,我按照这里的说明在双击特定文件类型时打开程序。 我包含了一个与指定文件类型关联的图标。出现的问题是,当我返回更新/更改图标图像并尝试重新安装程序的更新版本时,使用的是旧图标,而不是我在visual studio中将其更改为的图标 图标可能缓存在shell图标缓存中。删除%USERPROFILE%\AppData\Local\IconCache.db并终止explorer或注销NT6或在旧系统上使用。该图标可能缓存在shell图标缓存中。删除%USERPROFILE%\AppData\

长话短说,我按照这里的说明在双击特定文件类型时打开程序。


我包含了一个与指定文件类型关联的图标。出现的问题是,当我返回更新/更改图标图像并尝试重新安装程序的更新版本时,使用的是旧图标,而不是我在visual studio中将其更改为的图标

图标可能缓存在shell图标缓存中。删除%USERPROFILE%\AppData\Local\IconCache.db并终止explorer或注销NT6或在旧系统上使用。

该图标可能缓存在shell图标缓存中。删除%USERPROFILE%\AppData\Local\IconCache.db并终止explorer或注销NT6或在旧系统上使用。

尝试使用

试用


有两个步骤可以使图标更新:1。覆盖项目文件夹中的旧.ico文件或与新文件一起保存的任何位置-这将更新应用程序属性中的图标。2.编辑Mainform,转到icon属性并重新选择图标文件-这将更新窗口和任务栏上显示的图标。

有两个步骤使图标更新:1。覆盖项目文件夹中的旧.ico文件或与新文件一起保存的任何位置-这将更新应用程序属性中的图标。2.编辑主窗体,转到图标属性并重新选择图标文件-这将更新窗口和任务栏上显示的图标。

操作系统保留这些图标的缓存。这可能是你问题的根源。如果是这样,清除缓存应该可以修复它。尝试搜索windows图标缓存重建。操作系统保留这些图标的缓存。这可能是你问题的根源。如果是这样,清除缓存应该可以修复它。尝试搜索windows图标缓存重建。这确实是问题所在。感谢大家的良好和快速的响应,作为一名程序员,有什么方法可以在解决方案/部署中以编程方式实现这一点吗?这个问题在开发机器上更常见,我不建议您尝试删除最终用户机器上的缓存。如果VS没有为您执行此操作,请调用SHChangeNotify,这是记录在案的方式,在正常情况下应该足够了……这确实是问题所在。感谢大家的良好和快速的响应,作为一名程序员,有什么方法可以在解决方案/部署中以编程方式实现这一点吗?这个问题在开发机器上更常见,我不建议您尝试删除最终用户机器上的缓存。如果VS没有为您执行此操作,请调用SHChangeNotify,这是有文档记录的方式,在正常情况下应该足够了……因此尝试调用SHChangeNotify后,它似乎不会刷新。但我发现有趣的是,在我使用c库的程序中,打开文件对话框显示更新的图标,但如果我使用windows资源管理器,文件图标保持不变…这发生在使用SHChangeNotify之前。因此,在尝试调用SHChangeNotify后,它似乎没有刷新。不过,我发现有趣的是,在我使用c库的程序中的“打开文件”对话框显示更新的图标,但如果我使用windows资源管理器,文件图标保持不变……这发生在使用SHChangeNotify之前
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern void SHChangeNotify(int wEventId, int uFlags, IntPtr dwItem1, IntPtr dwItem2);

SHChangeNotify(0x08000000, 0x0000, (IntPtr)null, (IntPtr)null);//SHCNE_ASSOCCHANGED SHCNF_IDLIST