将DLL放入到资源中,运行时自动加载的小例子
更新时间:2013年10月16日 15:23:06 作者:
这篇文章介绍了将DLL放入到资源中,运行时自动加载的小例子,有需要的朋友可以参考一下
今天在看到 一个小软件,考勤用的 AttendanceSheet_V_1_2,只有一个EXE文件,绿色的随便考到哪里都可以运行。
顺手反编译后发现,他将需要的DLL也放入到资源文件了,在启动的时候自动加载:
代码如下:
复制代码 代码如下:
internal static class Program
{
// Methods
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.AssemblyResolve += delegate (object sender, ResolveEventArgs senderArgs) {
Assembly executingAssembly = Assembly.GetExecutingAssembly();
string name = new AssemblyName(executingAssembly.FullName).Name;
string str2 = new AssemblyName(senderArgs.Name).Name;
string str3 = name + "." + str2 + ".dll";
using (Stream stream = executingAssembly.GetManifestResourceStream(str3))
{
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
return Assembly.Load(buffer);
}
};
Application.Run(new 考勤表生成工具());
}
}
相关文章
C# winfroms使用socket客户端服务端的示例代码
这篇文章主要为大家详细介绍了C# winfroms使用socket客户端服务端的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下2024-02-02
c# 使用模式匹配以及 is 和 as 运算符安全地进行强制转换
这篇文章主要介绍了c# 使用模式匹配以及 is 和 as 运算符安全地进行强制转换,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下2020-10-10
C# 延迟Task.Delay()和Thread.Sleep()的具体使用
Thread.Sleep()是同步延迟,Task.Delay()是异步延迟,本文主要介绍了C# 延迟Task.Delay()和Thread.Sleep()的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧2024-01-01
C#版的 Escape() 和 Unescape() 函数分享
从网上看到两个方法, C# 版的 Escape() 和 Unescape(),收藏下。2011-05-05


最新评论