介绍开源的.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通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地 ...
随机推荐
- swift项目初体验--教你打造一款个性化图片浏览器(篇幅过大,慎入)
项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片. 项目的主要核心技术:图片的弹出和消失动画 项目源代码: Photo-Browser 一.对代码进行重构 ...
- appserv 设置虚拟路径httpd.conf的配置
总结 1 打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号. #LoadModule vhost_alias_module modules/mod_vhost ...
- Windows消息传递机制详解
Windows是一个消息(Message)驱动系统.Windows的消息提供了应用程序之间.应用程序与Windows系统之间进行通信的手段.应用程序想要实现的功能由消息来触发,并且靠对消息的响应和处理 ...
- ifconfig
虚拟机启动后发现ifconfig命令下,没有打印ip .用ifconfig eth0 up命令开启下网卡. #ifconfig eth0 up .更改eth0配置: #vi/etc/sysconfig ...
- pyenv ipython jupyter
pyenv pyenv 依赖安装 yum -y install git gcc make patch zlib-devel gdbm-devel openssl-devel sqlite-devel ...
- Date类型,Boolean类型,Number类型
1.Date类型: 1)创建Date对象: var date=new Date(); //Date对象会把当前日期和时间保存为其初始值 2)Date对象的方法: --这些得到的都是数字 ...
- Java菜鸟学习 Script 脚本语言(简介)
script 可以写在head里 也可以写在body里 还可以写在 /html后面 script 也是成对出现的 <script></script> 他有三种常见的对话框 1 ...
- Unity中Collider和刚体Collider性能对比
测试方式: 每个对象做大范围正弦移动,创建1000-5000个对象,保证场景分割树的实时更新,并测试帧率 测试脚本: 移动脚本: using UnityEngine; using System.Col ...
- Xcode环境下OpenGL C++ GLFW开发环境搭建
操作系统版本:MacOS Mavericks 10.9.2 Xcode版本:5.0.1 OpenGL版本:4.10 GLFW版本:3.0.4 一.GLFW编译 1.下载并安装cmake(当前最新版本为 ...
- 从零开始学iPhone开发(1)——工具的使用
前提:已经具备了苹果电脑或者iMac,或者安装好了x86苹果而且已经联网. 苹果系统版本要求是:Max OS X Lion,或者 Mountain Lion 我们对iPhone进行使用的工具是XCod ...