C# 嵌入dll 的方法
在很多時候我們在生成C#exe文件時,如果在工程里調用了dll文件時,那么如果不加以處理的話在生成的exe文件運行時需要連同這個dll一起轉移,相比于一個單獨干凈的exe,這種形式總歸讓人不爽,那么有辦法讓生成的軟件中直接就包含這個dll文件嗎,這樣就可以不用dll跟著exe走了,避免單獨不能運行的情況。
答案是有的!
在工程項目目錄下找到Resources.resx文件并點擊,然后按下面操作,添加資源,將你要加入的dll添加進來。
操作完成后,就會在下面的內容框里看到你添加進來的dll。
然后在工程中加入下面這個函數(shù)代碼:
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { string dllName = args.Name.Contains(",") ? args.Name.Substring(0, args.Name.IndexOf(',')) : args.Name.Replace(".dll", ""); dllName = dllName.Replace(".", "_"); if (dllName.EndsWith("_resources")) return null; System.Resources.ResourceManager rm = new System.Resources.ResourceManager(GetType().Namespace + ".Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly()); byte[] bytes = (byte[])rm.GetObject(dllName); return System.Reflection.Assembly.Load(bytes); }
在InitializeComponent();之前調用。這樣生成的exe就包含這個dll文件啦。
public Form1() { this.StartPosition = FormStartPosition.CenterScreen; AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); InitializeComponent(); }
總結
以上所述是小編給大家介紹的C# 嵌入dll 的方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
- C#調用C類型dll入?yún)閟truct的問題詳解
- C# 添加對System.Configuration.dll文件的引用操作
- 關于C#調用C++dll傳指針釋放內存問題
- vs2019 實現(xiàn)C#調用c++的dll兩種方法
- C#中托管DLL和非托管DLL的區(qū)別詳解
- VSCode調試C#程序及附缺失.dll文件的解決辦法
- Qt程序中調用C#編寫的dll(推薦)
- C#調用Win32的API函數(shù)--User32.dll
- C#調用C++dll方法步驟
- C# [ImportDll()] 知識小結
- C#如何通過probing指定dll尋找文件夾詳解
- C#調用易語言寫的Dll文件方法
- C#使用反射(Reflect)獲取dll文件中的類型并調用方法
- c#調用c語言dll需要注意的地方