[C#]使用Costura.Fody將源DLL合並到目標EXE


 


本文為原創文章,如轉載,請在網頁明顯位置標明原文名稱、作者及網址,謝謝!


一、本文主要是使用Costura.Fody工具將源DLL合並到目標EXE,因此,需要從以下任一鏈接下載:

①從Github地址下載:

②從百度網盤下載:

③【推薦】從Nuget地址安裝工具:

並從Visual Studio中的程序包管理器控制台進行安裝:

PM> Install-Package Costura.Fody -Version 1.6.2

注:最新版本請打開Nuget地址進行獲取

二、安裝之后,Costura.dll等已經被引用進來,如下圖所示:

三、新建一個引用Newtonsoft.Json.dll的解決方案,這個就借用上一篇內容【[C#]使用ILMerge將源DLL合並到目標EXE(.NET4.6.2)】的例子,解決方案下載地址:

代碼如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace ConsoleApp12 { class Program { static void Main(string[] args) { List<Person> list = new List<Person>() { new Person(){ ID = 1, Name = "ABC" }, new Person(){ ID = 2, Name = "XYZ" }, }; var result = JsonConvert.SerializeObject(list); JArray jArray = JArray.Parse(result); foreach(var item in jArray) { Console.WriteLine($"ID:{(int)item["ID"]},Name:{(string)item["Name"]}"); } Console.ReadKey(); } } class Person { public int ID { set; get; } public string Name { set; get; } } }

引用的Newtonsoft.Json.dll如上一張圖片所示。

四、點擊運行按鈕,然后在bin/Debug文件夾下看能生成的文件如下:

從以上圖片可以看出,生成的文件沒有包含Newtonsoft.Json.dll與Costura.dll沒有被生成,只有三個文件。

我們可以刪除ConsoleApp.exe.config及ConsoleApp12.pdb文件,留下ConsoleApp12.exe文件即可,ConsoleApp12.exe能單獨運行

五、我們可以使用ILSpy.exe查看剛才生成之后的ConsoleApp12.exe,如下圖所示:

從以上可以看出,可以使用Costura.Fody將源DLL合並到目標EXE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM