介绍开源的.net通信框架NetworkComms框架之九 合并DLL
原文网址: http://www.cnblogs.com/csdev
Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是:Apache License v2
开源地址是:https://github.com/MarcFletcher/NetworkComms.Net
合并Dll 不属于网络通信部分的功能,NetworkComms 框架带有这样一个Demo,用于合并所有的DLL.很有用,所以单独讲一下。
程序实际调用的是微软的ILMerge程序进行工作
MergedDllBuild程序需要引用所有要合并的DLL所属的工程文件。
没有工程文件的,需要把Dll复制到 Bin目录下
示例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ILMerging; using System.IO; using System.Reflection; namespace MergedDllBuild { class Program { static void Main(string[] args) { #if !DEBUG Version networkCommsVersion = new Version(Assembly.ReflectionOnlyLoad("NetworkCommsDotNet").FullName. Split(','). Where(s => s.Split(). ToDictionary(s => s.Split(].Trim(), s => s.Split(].Trim())["Version"]); string targetPlatform = "v2"; string msCoreLibDirectory = @"C:\Windows\Microsoft.NET\Framework\v2.0.50727"; bool coreBuildEnabled = false; bool completeBuildEnabled = true; #region Merge Core if (coreBuildEnabled) { Directory.CreateDirectory("MergedCore"); File.Delete(@"MergedCore\MergeLog.txt"); ILMerge coreMerge = new ILMerge(); List<string> coreAssembles = new List<string>(); coreAssembles.Add("NetworkCommsDotNet.dll"); coreAssembles.Add("protobuf-net.dll"); coreAssembles.Add("ProtobufSerializer.dll"); coreMerge.SetInputAssemblies(coreAssembles.ToArray()); coreMerge.Version = networkCommsVersion; coreMerge.TargetKind = ILMerge.Kind.Dll; coreMerge.SetTargetPlatform(targetPlatform, msCoreLibDirectory); coreMerge.XmlDocumentation = true; coreMerge.KeyFile = "networkcomms.net.snk"; coreMerge.OutputFile = @"MergedCore\NetworkCommsDotNetCore.dll"; coreMerge.Log = true; coreMerge.LogFile = @"MergedCore\MergeLog.txt"; coreMerge.Merge(); } #endregion #region Merge Complete if (completeBuildEnabled) { Directory.CreateDirectory("MergedComplete"); File.Delete(@"MergedComplete\MergeLog.txt"); ILMerge completeMerge = new ILMerge(); List<string> completeAssembles = new List<string>(); completeAssembles.Add("NetworkCommsDotNet.dll"); completeAssembles.Add("protobuf-net.dll"); completeAssembles.Add("ProtobufSerializer.dll"); completeAssembles.Add("ICSharpCode.SharpZipLib.dll"); completeAssembles.Add("SharpZipLibCompressor.dll"); //completeAssembles.Add("QuickLZCompressor.dll"); completeMerge.SetInputAssemblies(completeAssembles.ToArray()); completeMerge.Version = networkCommsVersion; completeMerge.TargetKind = ILMerge.Kind.Dll; completeMerge.SetTargetPlatform(targetPlatform, msCoreLibDirectory); completeMerge.XmlDocumentation = true; completeMerge.KeyFile = "networkcomms.net.snk"; completeMerge.OutputFile = @"MergedComplete\NetworkCommsDotNetComplete.dll"; completeMerge.Log = true; completeMerge.LogFile = @"MergedComplete\MergeLog.txt"; completeMerge.Merge(); } #endregion #endif } } }
源码:http://pan.baidu.com/s/1dEJEdNz
介绍开源的.net通信框架NetworkComms框架之九 合并DLL的更多相关文章
- 介绍开源的.net通信框架NetworkComms框架 源码分析
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 售价249英镑 我曾经花了 ...
- 介绍开源的.net通信框架NetworkComms框架之二 传递类
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地 ...
- 介绍开源的.net通信框架NetworkComms框架之四 消息边界
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(三)PacketHeader
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 介绍开源的.net通信框架NetworkComms框架之一 首字节验证
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地 ...
- 介绍开源的.net通信框架NetworkComms框架之五 心跳检测
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 介绍开源的.net通信框架NetworkComms
Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地址是:https://github.com/MarcFletcher/ ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(二)ConnectionInfo
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 介绍开源的.net通信框架NetworkComms框架之三 传递List
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地 ...
随机推荐
- Visual Studio 2010初学者的调试指南:Mastering Debugging in Visual Studio 2010 - A Beginner's Guide
Introduction In the software development life cycle, testing and defect fixing take more time than a ...
- JS按回车键实现登录的方法
本文实例讲述了JS按回车键实现登录的方法,该功能有着非常广泛的实用价值.分享给大家供大家参考之用.具体方法如下: 方法一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 < ...
- 彻底的放弃.net
最近看了招聘信息,搜一搜 .net 高级信息,发现对比 JAVA ,只有1页,而 JAVA 至少有3页. 最近用了一下嗒嗒巴士,滴滴打车,各种团购,各种外卖,各种移动互联网改变生活的东西,无一和 .n ...
- nodejs框架express快速开始
认识express 创建应用 get请求 简述中间件 all方法 use方法1 use方法2 回调函数 获取主机.路径名 Get请求 - query Get请求 - param Get请求 - par ...
- 深入理解Java PriorityQueue
PriorityQueue 本文github地址 Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析Prio ...
- C语言中执行到预编译
在Linux中,执行命令:gcc -o linux.i linux.c -E
- mac上安装opencv3
转载于:http://blog.csdn.net/sanwandoujiang/article/details/51159983 在macosx上安装opencv2 brew tap homebrew ...
- C++头文件的组织
转自:http://www.cnblogs.com/lidabo/archive/2012/04/17/2454568.html C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件 ...
- MVC区域使用
新建项目 Main: 添加一个MVC5控制器并添加index视图:(HomeController) Views/Home/Index.cshtml内容: @{ Layout = null; } < ...
- KNN算法与Kd树
最近邻法和k-近邻法 下面图片中只有三种豆,有三个豆是未知的种类,如何判定他们的种类? 提供一种思路,即:未知的豆离哪种豆最近就认为未知豆和该豆是同一种类.由此,我们引出最近邻算法的定义:为了判定未知 ...