欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# 嵌入dll 的方法

 更新時(shí)間:2018年07月08日 17:11:41   作者:樹(shù)蔭下的陽(yáng)光  
這篇文章主要介紹了C# 嵌入dll 的方法,本文圖文并茂給大家及時(shí)的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在很多時(shí)候我們?cè)谏蒀#exe文件時(shí),如果在工程里調(diào)用了dll文件時(shí),那么如果不加以處理的話在生成的exe文件運(yùn)行時(shí)需要連同這個(gè)dll一起轉(zhuǎn)移,相比于一個(gè)單獨(dú)干凈的exe,這種形式總歸讓人不爽,那么有辦法讓生成的軟件中直接就包含這個(gè)dll文件嗎,這樣就可以不用dll跟著exe走了,避免單獨(dú)不能運(yùn)行的情況。

        答案是有的!  

      在工程項(xiàng)目目錄下找到Resources.resx文件并點(diǎn)擊,然后按下面操作,添加資源,將你要加入的dll添加進(jìn)來(lái)。       

      操作完成后,就會(huì)在下面的內(nèi)容框里看到你添加進(jìn)來(lái)的dll。    

        然后在工程中加入下面這個(gè)函數(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();之前調(diào)用。這樣生成的exe就包含這個(gè)dll文件啦。

public Form1()
    {
      this.StartPosition = FormStartPosition.CenterScreen;
      AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
      InitializeComponent();
    }

總結(jié)

以上所述是小編給大家介紹的C# 嵌入dll 的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • 解決C# X64應(yīng)用程序中讀取WParam溢出的問(wèn)題

    解決C# X64應(yīng)用程序中讀取WParam溢出的問(wèn)題

    C#應(yīng)用程序是AnyCPU的,在一段處理鼠標(biāo)滾輪WM_MOUSEWHEEL的代碼里碰到溢出的問(wèn)題OverflowException
    2013-04-04
  • C# 線程同步詳解

    C# 線程同步詳解

    本文主要介紹了C#中線程同步的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • C# Winform多屏幕多顯示器編程技巧實(shí)例

    C# Winform多屏幕多顯示器編程技巧實(shí)例

    這篇文章主要介紹了C# Winform多屏幕多顯示器編程技巧實(shí)例,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2015-06-06
  • C#實(shí)現(xiàn)讀寫CSV文件的方法詳解

    C#實(shí)現(xiàn)讀寫CSV文件的方法詳解

    項(xiàng)目中經(jīng)常遇到CSV文件的讀寫需求,其中的難點(diǎn)主要是CSV文件的解析。本文會(huì)介紹CsvHelper、TextFieldParser、正則表達(dá)式三種解析CSV文件的方法,需要的可以參考一下
    2022-06-06
  • C#中函數(shù)的創(chuàng)建和閉包的理解

    C#中函數(shù)的創(chuàng)建和閉包的理解

    這篇文章主要介紹了C#中函數(shù)的創(chuàng)建和閉包的理解,本文講解了動(dòng)態(tài)創(chuàng)建函數(shù)、匿名函數(shù)不足之處、理解c#中的閉包、閉包的優(yōu)點(diǎn)等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • C#的四個(gè)基本技巧

    C#的四個(gè)基本技巧

    C#的四個(gè)基本技巧...
    2007-03-03
  • C#如何訪問(wèn)共享文件夾或者磁盤

    C#如何訪問(wèn)共享文件夾或者磁盤

    這篇文章主要為大家詳細(xì)介紹了C#訪問(wèn)共享文件夾或者磁盤,需要用戶名密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C# wx獲取token的基本方法

    C# wx獲取token的基本方法

    這篇文章主要為大家詳細(xì)介紹了C# wx獲取token的基本方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C# try catch代碼塊不起效果的解決方法

    C# try catch代碼塊不起效果的解決方法

    本文主要介紹了C# try catch代碼塊不起效果的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C#如何對(duì)多線程、多任務(wù)管理(demo)

    C#如何對(duì)多線程、多任務(wù)管理(demo)

    這篇文章主要通過(guò)一個(gè)小demo介紹了C#如何對(duì)多線程、多任務(wù)管理,需要的朋友可以參考下
    2015-07-07

最新評(píng)論