使用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

相关文章
相关标签/搜索