Je voudrais prendre un fichier qui est un fichier IL, et au moment de l'exécution le compiler à un exe.Compilez le code IL à l'exécution en utilisant .NET 3.5 et C# à partir du fichier
Actuellement, je peux utiliser process.start pour déclencher la ligne de commande avec des paramètres (ilasm.exe) mais je voudrais automatiser ce processus à partir d'un service C# que je vais créer.
Existe-t-il un moyen de le faire avec réflexion et réflexion?
Bien que cela fonctionne:
string rawText = File.ReadAllText(string.Format("c:\\temp\\{0}.il", Utility.GetAppSetting("baseName")), Encoding.ASCII);
rawText = rawText.Replace("[--STRIP--]", guid);
File.Delete(string.Format("c:\\temp\\{0}.il", Utility.GetAppSetting("baseName")));
File.WriteAllText(string.Format("c:\\temp\\{0}.il", Utility.GetAppSetting("baseName")),rawText, Encoding.ASCII);
pi = new ProcessStartInfo();
pi.WindowStyle = ProcessWindowStyle.Hidden;
pi.FileName = "\"" + ilasm + "\"";
pi.Arguments = string.Format("c:\\temp\\{0}.il", Utility.GetAppSetting("baseName"));
using(Process p = Process.Start(pi))
{
p.WaitForExit();
}
Il est pas idéal car je voudrais vraiment que ce soit un processus simplifié.
J'ai vu des exemples de création d'IL à l'exécution, puis de sauvegarde, mais j'ai besoin d'utiliser l'IL que j'ai déjà sous forme de fichier et de le recompiler en exe.
Merci.
Vous pouvez utiliser les méthodes Reflection.Emit ou dynamiques selon l'origine de votre IL. Est-ce généré? –
L'IL d'origine sera généré à partir de Ildasm.exe. – nitefrog