C#加载内嵌exe资源并运行,类似于加壳
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
[STAThread]//需要标记现场模型为STA,否则程序可能报错
static void Main(string[] args)
{
string resourceName = "ConsoleApp1" + ".AiFace.exe";//命名空间+内嵌资源名称
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);//内嵌资源转换成stream
byte[] buffer = new byte[stream.Length];//资源数据缓存数组
stream.Read(buffer, 0, (int)stream.Length);//读取数据到缓存数组
Assembly asm = Assembly.Load(buffer); //加载数据
MethodInfo pointInfo = asm.EntryPoint;//获取程序入口点
pointInfo.Invoke(null, (object[])args);//运行
Console.ReadLine();
}
}
}
需要注意资源文件生成操作选择”嵌入的资源”
版权声明:本文为weixin_43836903原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。