Betten Sie Ressourcen programmgesteuert in eine .NET-Assembly ein

Ich habe eine kompilierte .NET-Assembly mit einer bestimmten eingebetteten Ressourcendatei (mit dem Namen "Script.xml"). Ich muss es programmatisch durch ein anderes ersetzen.

Ist dies möglich, ohne erneut aus dem Quellcode zu kompilieren?

Derzeit suche ich nach Text, von dem ich weiß, dass er in der Datei enthalten ist und der gut funktioniert. Aber ich muss es für ein anderes Projekt tun, bei dem ich den Inhalt der Ressourcendatei nicht kenne und eine andere Methode finden muss.

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();

Antworten auf die Frage(4)

Ihre Antwort auf die Frage