• [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

  • 相关阅读:
    Redis和Memcache的区别
    j2EE框架collection
    总结乐观锁和悲观锁
    lunix,命令集锦
    遍历Map集合的方法
    arrayList和vector的区别
    python借助zookeeper实现分布式服务(二)
    python借助zookeeper实现分布式服务(一)
    zookeeper常用命令
    python实现事件驱动模型
  • 原文地址:https://www.cnblogs.com/cncc/p/7804511.html
Copyright © 2020-2023  润新知