Cecil can round-trip an assembly containing win32 resources, and will preserve them, but doesn't offer a way to add / modify / remove win32 resources.
JB, if you're still planning to implement this, perhaps you could adapt the code from ResourceLib (http://resourcelib.codeplex.com/). It's an MIT-licensed project for manipulating Win32 resources in an assembly.
Thanks for the suggestion, it's definitely a planned feature for 1.0.
@carlokok also has some code for that in his fork.
Now I only need to take the time to take care of it :)
Reader/Writer from Cecil 0.6:
With a MIT license and the code now on Github, I have to agree with @jack-pappas in that ResourceLib looks like an excellent contender for solving this. As far as I understand the licensing, the code can just be copied from ResourceLib and into Cecil; no references required (although I wouldn't necessarily oppose a NuGet dependency).
@asbjornu except that the code is full of pinvokes and apparently reads directly from the file on disk by doing a win32 LoadLibrary. Not quite the approach we want :)
That's not a very crossplatform way to do it, no. 😄 Please let me know if there's anything I can do to help get this implemented.