Programmatically embed resources in a .NET assembly
c#, compiler-construction, resources
Solution
You could use `Cecil` to open the assembly and insert a resource (I do). YMMV
Problem
I have a compiled .NET assembly with a specific resource file embedded (named 'Script.xml'). I need to programmatically change it out for another. Is this possible to do without recompiling from source? Currently, I do a search for text I know is in the file and it works well. But I need to do it for another project where I don't know any of the contents of the resource file and I need to find another method. ``` FileStream exe = new FileStream(currentexe, FileMode.Open); //find xml part of exefile string find = "<?xml version=\"1.0\"?>"; string lastchars = new string(' ', find.Length); while (exe.CanRead) { lastchars = lastchars.Substring(1) + (char)exe.ReadByte(); if (lastchars == find) { exe.Seek(-find.Length, SeekOrigin.Current); break; } } //output serialized script int bytenum = 0; foreach (byte c in xml) { if (c == 0) break; exe.WriteByte(c); bytenum++; } //clean out extra data while (bytenum++ < ScriptFileSize) { exe.WriteByte(0x20); } exe.Close(); ```