[C#] 把DLL內崁在主程式中(DLL or EXE)

將要內崁的DLL加入至Visual Studio裡,並將建置動作改成 Embedded Resource

並且加入參考,Copy Local(複製到本機) = false


在 Program.cs 的 Main() 中,讓程式一開始就訂閱解析方式
 AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

並加入訂閱的function

        private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            string resourceName = "YourNameSpace." + new AssemblyName(args.Name).Name + ".dll";
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
            {
                byte[] assemblyData = new byte[stream.Length];
                stream.Read(assemblyData, 0, assemblyData.Length);
                return Assembly.Load(assemblyData);
            }
        }
當應用程式執行時找不到相依組件時,就會依上述程式碼載入組件

相關系列文章:

留言

這個網誌中的熱門文章

[TCL] 基本語法與指令 - 2. TCL 語法

[TCL] 基本語法與指令 - 1. TCL 簡介

[TCL] 基本語法與指令 - 3. 資料型態