I’ve added icon support in ResourceLib, an open source C# File Resource Management library. This lets you programmatically enumerate and change icons in an executable/dll. I needed this for dotNetInstaller.
Now ResourceLib can do version, string and icon resources, which are the hardest ones to implement. I hope some day ResourceLib will replace dozens of examples of reading/writing all types of file resources that are out there.