您现在的位置是:首页 >技术教程 >C#Resources资源内嵌exe网站首页技术教程

C#Resources资源内嵌exe

莫道韶华 2026-04-05 00:01:05
简介C#Resources资源内嵌exe

C#Resources资源内嵌exe

之前写过一个可以自动更新的dll文件,但是需要拉起额外的exe程序,这就导致如果配置更新,每次都需要增加exe文件以及引用dll两步,为了简化这一过程,想到了用资源内嵌的方式在dll内带着exe,这样可以做到只引用dll就可以实现自动更新了,话不多说,现在开始——

资源添加exe

双击Resources.resx
在这里插入图片描述
然后出现一个空页面
在这里插入图片描述
点击添加现有文件
在这里插入图片描述
点击添加现有资源
在这里插入图片描述
在弹出来的窗口选择exe文件
然后生成文件夹
在这里插入图片描述

设置内嵌exe

单击Resources文件夹下需要嵌入的资源
在这里插入图片描述
选择嵌入的资源即可
另外:设置嵌入的资源后,这个资源在程序内只能读,不能写

获取资源名称

//资源名 = 命名空间+.Resources.+加入的资源名称
string resourceName = "Test"+ ".Resources."+"Updater.exe";

有了资源名称,调取就方便了,比如我需要拉起exe

using (Stream resourceStream = assembly.GetManifestResourceStream(resourceName))
{
    if (resourceStream == null)
    {
        Console.WriteLine($"Failed to locate embedded EXE with name: {resourceName}");
        return;
    }

	// 写入到磁盘
    using (FileStream fileStream = new FileStream(_exePath, FileMode.Create, FileAccess.Write))
    {
        resourceStream.CopyTo(fileStream);
    }
}

放到固定位置后,直接搜索拉取就可以了

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。