使用Costura.Fody將源DLL合併到目標EXE

 

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


1、本文主要是使用Costura.Fody工具將源DLL合併到目標EXE,所以,須要從如下任一連接下載:git

①從Github地址下載:
github

②從百度網盤下載:工具

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

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

PM> Install-Package Costura.Fody -Version 1.6.2

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

2、安裝以後,Costura.dll等已經被引用進來,以下圖所示:3d

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

代碼以下:htm

複製代碼
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如上一張圖片所示。

4、點擊運行按鈕,而後在bin/Debug文件夾下看能生成的文件以下:

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

咱們能夠刪除ConsoleApp.exe.config及ConsoleApp12.pdb文件,留下ConsoleApp12.exe文件便可,ConsoleApp12.exe能單獨運行

5、咱們能夠使用ILSpy.exe查看剛纔生成以後的ConsoleApp12.exe,以下圖所示:

從以上能夠看出,能夠使用Costura.Fody將源DLL合併到目標EXE

 

出處:http://www.cnblogs.com/cncc/p/7804511.html

相關文章
相關標籤/搜索