如何嵌入资源以便可以访问图标?

时间:2010-04-27 10:52:55

标签: c# resources icons file-association

我有一个使用VS2005的C#项目。基本上我有两个图标,一个用于应用程序,另一个用于与应用程序关联的文件。

我已将这些文件与应用程序相关联,并且我知道如何在注册表中设置其图标,但我只能将它们设置为应用程序图标,因为它似乎是唯一的外部资源。

我已尝试将图标放在资源文件(.resx)中,或者作为单独的文件(.ico)在编译时编译到exe中,但都不起作用。

为了表明我的意思,我已经构建了应用程序并使用Resource Hacker打开它,你会发现只有两个图标中的一个,使用一个图标和一个图标组。

http://img442.imageshack.us/img442/3189/resourcesx.jpg http://img442.imageshack.us/img442/3189/resourcesx.jpg

3 个答案:

答案 0 :(得分:0)

我不认为可以做到。你可能不得不求助于一个C ++项目,你可以用shell可以识别的方式嵌入图标。请注意,这并不意味着dll必须包含任何其他内容;)但我不认为.NET程序集可以包含与shell兼容的资源。

答案 1 :(得分:0)

我相信你可以通过直接调用C#编译器来实现这一点。这个MSDN主题似乎包含有用的信息。

Working with Resources Using csc.exe

答案 2 :(得分:0)

最后,我将.ico存储在嵌入在.exe中的资源文件中,然后将其解压缩到AppData文件夹供Explorer使用。