2017-01-29 4 views
1

Also habe ich eine interpretierte Programmiersprache gemacht haben, und alles geht in Ordnung, außer eines: Ich will einen „Compiler“ machen, die den Benutzer-Code in eine Kopie der bettet dolmetscher, so dass der Benutzer lediglich auf die ausführbare Datei mit dem darin eingebetteten Code doppelklicken muss und sie ausgeführt wird.einbetten eine Datei in eine externe exe mit C#

Die Frage ist also: Wie kann ich eine Datei in eine bereits kompilierte ausführbaren Datei einbetten? Ich habe Zugriff auf die ausführbare Datei vor es ist kompiliert, aber der Einbettungsprozess muss danach geschehen.

ich die Lösung C# zu sein in, aber ich bin verzweifelt und konnte verwenden C++ oder VB.NET, oder auch eine Batch-Datei

+0

Welchen Dateityp möchten Sie einbetten? – FeliceM

+0

@FeliceM Nur eine Textdatei, die den Code enthält, der interpretiert wird – markpwns1

Antwort

0

So nach einigen intensiven Googeln fand ich eine Bibliothek namens Mono.Cecil was tut genau bevorzugen was ich möchte. Ich konnte eine Datei in eine ausführbare Datei unter Verwendung des folgenden Codes einfügen:

string fileName = "Interpreter.exe"; // The file which will have toInject injected in it 
string outputName = "Compiled.exe"; // The output file to compile 
string toInject = "program.txt";  // The file we will be injecting into fileName 
string resourceName = "program.txt"; // The name of the file once it's inside fileName 

var module = ModuleDefinition.ReadModule(filename); 

var file = new EmbeddedResource(
    resourceName, 
    ManifestResourceAttributes.Private, 
    File.ReadAllBytes(toInject)); 

module.Resources.Add(file); 

module.Write(outputName); 
Verwandte Themen