通过网上查询,将引用的dll,嵌入到exe项目中,通过编译为单一的exe文件。
1. 引用dll,将引用的dll设置为不复制(是否复制不影响使用,编译完成后,只需要exe就可以了, 旁边的dll是否存在并不影响使用)。
2. 将引用的dll嵌入到项目中。
新建一个项目文件夹,将引用的dll复制到此文件夹中,并包含中项目里,设置为“嵌入的资源;”
3. 在main()方法中,添加代码,处理找不到dll的相关异常处理。
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain());
}
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs e)
{
//项目的命名空间为myapp, 嵌入dll资源在libs文件夹下,所以这里用的命名空间为: myapp.libs.
string _resName = "myapp.libs." + new AssemblyName