我可以使用以下方法运行.net exe:
Assembly a = Assembly.Load(bytes);
MethodInfo method = a.EntryPoint;
if (method != null)
method.Invoke(a.CreateInstance(method.Name), null);
如何为非.NET exe做同样的事情?我不想编写.exe文件并像
Process.Start()
一样运行我该怎么做?
最佳答案
如果程序是非托管代码,例如C或C ++程序,则不能直接从.Net内存中启动它。您可以做的是将其打包为资源,将其流式传输到磁盘(临时文件夹),然后使用System.Diagnostics.Process类启动它。但是它将显示在进程列表中。
如果您的程序是dll,则可以使用p / invoke执行其入口点方法。