我想执行存储在字节数组中的程序,该程序不一定是.NET可执行文件而不创建新文件。目前我正在使用此代码,但它仅适用于.net exes:
var assembly = Assembly.Load(assemblyBuffer);
var entryPoint = assembly.EntryPoint;
var commandArgs = new string[0];
var returnValue = entryPoint.Invoke(null, new object[] { commandArgs });
答案 0 :(得分:3)
Assembly.Load
用于加载.NET程序集。
听起来你只是想开始一个新进程 - 所以在首先将文件保存到磁盘后使用Process
和ProcessStartInfo
类:
File.WriteAllBytes("tmp.exe", assemblyBuffer);
Process process = Process.Start("tmp.exe", commandArgs);
我认为您会发现很难在不将文件系统首先保存到文件系统的情况下启动可执行文件,尽管这可能是内存中的文件系统。