ILファイルであるファイルを取得し、実行時にコンパイルしてexeに戻したいと思います。
現在、process.start を使用してパラメーター (ilasm.exe) を使用してコマンド ラインを起動できますが、作成する C# サービスからこのプロセスを自動化したいと考えています。
リフレクションとreflection.emitでこれを行う方法はありますか?
これが機能している間:
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 を作成して保存する例を見てきましたが、既にファイル形式で持っている IL を使用して、exe にコンパイルし直す必要があります。
ありがとう。