选择一个项目(demo3),来进行内嵌。正常dll文件是可以在Bin–Debug里面看到的。

在Program里面添加内容

Program.cs里的全部代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace demo3
{
internal static class Program
{
[STAThread]
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string _resName = Assembly.GetExecutingAssembly().GetName().Name + ".Lib." + new AssemblyName(args.Name).Name + ".dll";
using (var _stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(_resName))
{
byte[] _data = new byte[_stream.Length];
_stream.Read(_data, 0, _data.Length);
return Assembly.Load(_data);
}
}
}
}
需要把dll的属性设置为不复制和嵌入的资源

将引用里的相同dll文件,复制本地改为false。

右击demo3,选择清理。清理一下。

运行之后,串口是打开的。

可以在文件夹里看到dll文件已经被嵌入到exe中了

如有错误请指正!!