將DLL放入到資源中,運(yùn)行時(shí)自動(dòng)加載的小例子
今天在看到 一個(gè)小軟件,考勤用的 AttendanceSheet_V_1_2,只有一個(gè)EXE文件,綠色的隨便考到哪里都可以運(yùn)行。
順手反編譯后發(fā)現(xiàn),他將需要的DLL也放入到資源文件了,在啟動(dòng)的時(shí)候自動(dòng)加載:

代碼如下:
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 考勤表生成工具());
}
}
相關(guān)文章
C#使用正則表達(dá)式實(shí)現(xiàn)常見(jiàn)的格式驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了C#如何使用正則表達(dá)式實(shí)現(xiàn)常見(jiàn)的格式驗(yàn)證,例如:電話(huà)號(hào)碼、密碼、郵編等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01深入分析C#鍵盤(pán)勾子(Hook)攔截器,屏蔽鍵盤(pán)活動(dòng)的詳解
本篇文章是對(duì)C#鍵盤(pán)勾子(Hook)攔截器,屏蔽鍵盤(pán)活動(dòng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#開(kāi)發(fā)Winform實(shí)現(xiàn)窗體間相互傳值
這篇文章介紹了C#開(kāi)發(fā)Winform實(shí)現(xiàn)窗體間相互傳值的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03一句話(huà)清晰總結(jié)C#的協(xié)變和逆變
這篇文章介紹了C#協(xié)變和逆變的工作原理,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10基于C#動(dòng)態(tài)生成帶參數(shù)的小程序二維碼
在微信小程序管理后臺(tái),我們可以生成下載標(biāo)準(zhǔn)的小程序二維碼,提供主程序入口功能,在實(shí)際應(yīng)用開(kāi)發(fā)中,小程序二維碼是可以攜帶參數(shù)的,可以動(dòng)態(tài)進(jìn)行生成,本文小編就給大家介紹一下如何基于C#動(dòng)態(tài)生成帶參數(shù)的小程序二維碼,感興趣的朋友可以參考下2023-12-12C#中結(jié)構(gòu)體定義并轉(zhuǎn)換字節(jié)數(shù)組詳解
在寫(xiě)C#TCP通信程序時(shí),發(fā)送數(shù)據(jù)時(shí),只能發(fā)送byte數(shù)組,處理起來(lái)比較麻煩不說(shuō),如果是和VC6.0等寫(xiě)的程序通信的話(huà),很多的都是傳送結(jié)構(gòu)體,在VC6.0中可以很方便的把一個(gè)char[]數(shù)組轉(zhuǎn)換為一個(gè)結(jié)構(gòu)體,而在C#卻不能直接把byte數(shù)組轉(zhuǎn)換為結(jié)構(gòu)體,要在C#中發(fā)送結(jié)構(gòu)體,應(yīng)該怎么做呢?2017-11-11