介绍开源的.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通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地 ...
随机推荐
- java多线程编程--基础篇
一.基本概念 a.操作系统中进程与线程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间, 一个进程中可以启动 ...
- 如何用css做一个细虚线边框表格
<style type="text/css"> <!-- .dashed_tbl { border-top: 1px dashed #333333; border ...
- 三个 DAL 相关的Java代码小工具
最近在做 DAL (Data Access Layer 数据访问层) 的服务化,发现有不少地方是人工编写比较繁琐的,因此写了几个小工具来完成. 1. 从 DAO 类自动生成 CoreService ...
- Dynamics AX 2012 R2 创建一个专用的批处理服务器
安装额外AOS的另一原因,是要创建一个专用的Batch服务器. AOS实例在处理batch job时,会影响它的响应速度.安装一个专用Batch服务器,可以解决这个问题. 批处理服务器不能加到 ...
- Java基础 静态块、非静态块、构造函数的执行顺序
Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的.结构如下: static { 静态语句代码块 } { 非静态语句代码块 } ...
- #添加图片,最多只能上传9张.md
#添加图片,最多只能上传9张.md 前端页面: ```javascript <form id="imgForm" enctype="multipart/form-d ...
- 。【自学总结 1】------3ds Max 界面
3ds Max 界面包含4部分(7区域) 4部分:菜单.控制工具.命令面板.窗口区 7区域: 1.标题栏:主要用于显示当前工作文件的名称,可以看到文件存储路径. 2.菜单栏:菜单中的命令如果带有省略号 ...
- C语言面试题(三)
这篇主要聚焦在排序算法,包括常见的选择排序,插入排序,冒泡排序,快速排序.会对这四种排序的时间复杂度和空间复杂度进行探究. a.选择排序 int main(int argc,char **argv){ ...
- XAF响应式布局皮肤界面展示
XAF为了对手机.平板电脑的支持,增加了新的响应式布局皮肤支持,这个功能已经出来很久了,对于平板电脑.PC的支持已经很不错了,对于手机的界面还不是很完美. 本篇展示一下当前的效果,让有需要的同学.还没 ...
- 《BI那点儿事》数据流转换——逆透视转换
逆透视转换将来自单个记录中多个列的值扩展为单个列中具有同样值的多个记录,使得非规范的数据集成为较规范的版本.例如,每个客户在列出客户名的数据集中各占一行,在该行的各列中显示购买的产品和数量.逆透视转换 ...