LMerge-github
ILMerge
ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序。它可以免费使用,并以NuGet包的形式提供。
如果您在使用它时遇到任何问题,请与我们联系。(mbarnett at microsoft dot com)。但首先尝试阅读文档。
ILMerge接受一组输入程序集并将它们合并到一个目标程序集中。输入程序集列表中的第一个程序集是主程序集。当主程序集是可执行文件时,目标程序集将创建为具有与主程序集相同的入口点的可执行文件。此外,如果主程序集具有强名称,并且提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。
ILMerge打包为控制台应用程序。但它的所有功能也可以通过编程方式获得。
有几个选项可以控制ILMerge的行为。有关详细信息,请参阅该工具随附的文档。
目前的版本是2.14.1208(2014年12月8日创建)。注意:不再有在v1.1运行时中运行的ILMerge版本。
ILMerge在v4.0 .NET运行时中运行,但它也能够使用它来合并来自其他框架版本的程序集/targetplatformoption。请参阅文档。(但是,它只能为v2(及更高版本)程序集合并PDB文件。)
目前,ILMerge仅适用于基于Windows的平台。它还不支持Rotor或Mono。
如果使用ASP.NET v2.0,则它提供了一个工具(基于ILMerge)来组合在预编译期间创建的程序集。您可以从ASP.NET网站获取更多详细信息。
安装
如ilmerge NuGet页面所述,该软件包可以从Visual Studio环境安装。在Solution Explorer视图中展开项目容器。右键单击references并选择Manage NuGet Packages

确保Package source设置为nuget.org

接下来,单击Tools - NuGet Package Manager - Package Manager Console。确保Package source也设置为nuget.org

要为项目安装,请使用Install-Package命令:
Install-Package ilmerge -Version 3.0.21
用法
的MSBuild
ILMerge可以使用NuGet包在MSBuild中使用:
< Project Sdk = “ Microsoft.NET.Sdk ” > < ItemGroup >
< PackageReference Include = “ ILMerge ” Version = “ 2.15.0 ” />
</ ItemGroup > < Target Name = “ ILMerge ” >
<! - ILMergePath属性指向ILMerge.exe控制台应用程序的位置- >
< Exec Command = “ $(ILMergeConsolePath)/out:Merged.dll File1.dll File2.dll ” />
</ Target > </ Project >
编辑项目.csproj或.vbproj文件(在相应<Project> .. </Project>标记内,通常在文件末尾。如果编译特定目标,请使用显式目录,例如Bin\x64\Release:
<ItemGroup>
<PackageReference Include="ILMerge" Version="2.15.0" />
</ItemGroup>
<Target Name="ILMerge">
<!-- the ILMergePath property points to the location of ILMerge.exe console application -->
<Exec Command="$(ILMergeConsolePath) Bin\x64\Release\myapp.exe /out:myapp.exe Bin\x64\Release\File1.dll Bin\x64\Release\File2.dll Bin\x64\Release\File3.dll " />
</Target>
虽然XML文件中通常会忽略空格,但在这种情况下,确切的文本将作为DOS命令处理,因此为了提高可读性,请使用克拉^(shift 6)行扩展器:
<ItemGroup>
<PackageReference Include="ILMerge" Version="2.15.0" />
</ItemGroup>
<Target Name="ILMerge">
<!-- the ILMergePath property points to the location of ILMerge.exe console application -->
<Exec Command="$(ILMergeConsolePath) Bin\x64\Release\myapp.exe ^
/out:myapp.exe ^
Bin\x64\Release\File1.dll ^
Bin\x64\Release\File2.dll ^
Bin\x64\Release\File3.dll " />
</Target>
DOS dir / b选项可以帮助列出所有依赖项:
dir bin\x64\Debug\*.dll /b
从Visual Studio Developer命令提示符:
#下载/安装软件包参考
msbuild / t:恢复 #运行ILMerge目标
msbuild / t:ILMerge
要ILMerge在批处理文件中运行:
此处不需要Visual Studio Developer命令提示符,因为msbuild未使用。
@echo off
:: this script needs https://www.nuget.org/packages/ilmerge
:: set your target executable name (typically [projectname].exe)
SET APP_NAME=myapp.exe
:: Set build, used for directory. Typically Release or Debug
SET ILMERGE_BUILD=Debug
:: Set platform, typically x64
SET ILMERGE_PLATFORM=x64
:: set your NuGet ILMerge Version, this is the number from the package manager install, for example:
:: PM> Install-Package ilmerge -Version 3.0.21
:: to confirm it is installed for a given project, see the packages.config file
SET ILMERGE_VERSION=3.0.21
:: the full ILMerge should be found here:
SET ILMERGE_PATH=%USERPROFILE%\.nuget\packages\ilmerge\%ILMERGE_VERSION%\tools\net452
:: dir "%ILMERGE_PATH%"\ILMerge.exe
echo Merging %APP_NAME% ...
:: add project DLL's starting with replacing the FirstLib with this project's DLL
"%ILMERGE_PATH%"\ILMerge.exe Bin\x64\Release\%APP_NAME% ^
/lib:Bin\%ILMERGE_PLATFORM%\%ILMERGE_BUILD%\ ^
/out:%APP_NAME% ^
FirstLib.dll ^
mylib1.dll ^
Microsoft.lib2.dll ^
SomeOtherLib.dll ^
\otherlibdir\otherlib.dll
:Done
dir %APP_NAME%
LMerge-github的更多相关文章
- 搜刮一些开源项目的APP
iOS完整App资源收集 <iOS完整app资源收集> <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...
- 【原】Github+Hexo+NextT搭建个人博客
摘要 GitHub 是一个开源项目的托管网站,相信很多人都听过.在上面有很多高质量的项目代码,我们也可以把自己的项目代码托管到GitHub,与朋友们共享交流.GitHub Pages 是Github为 ...
- TODO:GitHub创建组织的步骤
TODO:GitHub创建组织的步骤 使用GitHub进行团队合作,写这个步骤主要作用是为了OneTODO作为一个团队组织进行代码的分享,让更多人来参与. 使用帐号.密码登录GitHub 2.右上角加 ...
- GitHub实战系列汇总篇
基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...
- 清空Github上某个文件的历史版本
title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...
- 预览github里面的网页或dome
1.问题所在: 之前把项目提交到github都可以在路径前面加上http://htmlpreview.github.io/?来预览demo,最近发现这种方式预览的时候加载不出来css,js(原因不详) ...
- python爬取github数据
爬虫流程 在上周写完用scrapy爬去知乎用户信息的爬虫之后,github上star个数一下就在公司小组内部排的上名次了,我还信誓旦旦的跟上级吹牛皮说如果再写一个,都不好意思和你再提star了,怕你们 ...
- gitHub使用入门和github for windows的安装教程
在看这篇教程之前我想大家也在搜索怎样使用gitHub托管自己的项目,在使用gitHub之前我也遇到过各种问题,在网上我也搜索了很多,但总觉得网上搜索到的东西很多很杂,有的根本不知道是在表达什么.在这过 ...
- 【项目管理】GitHub使用操作指南
GitHub使用操作指南 作者:白宁超 2016年10月5日18:51:03> 摘要:GitHub的是版本控制和协作代码托管平台,它可以让你和其他人的项目从任何地方合作.相对于CVS和SVN的联 ...
- 使用github远程仓库
经过几天对github的研究,终于把自己想完成的给解决了,发现google真的有很多解释,但是很多也会出现一些bug,对于初学者真的很多烦恼,所以整理一份,能给初识github的你有所帮助 一,首先, ...
随机推荐
- HDU 3901 Wildcard
题目:Wildcard 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3901 题意:给一个原串(只含小写字母)和一个模式串(含小写字母.?.* ,*号可替 ...
- BEX5下实现鼠标滚动滚动条
使用前提: 页面内容过多,默认的滚动条太难看,在不引入滚动条插件情况下让界面不使用滚动条,又能通过鼠标滚动 实现步骤: 1 在会出现滚动条的组件上设置隐藏滚动条 overflow:hidden; 2 ...
- Datatable get请求传参应用
以关注页面为例: html: <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12&q ...
- linux 定时下载github最新代码
场景:网站的代码在github上托管,静态网站部署在服务器上,每次自己修改完本地代码后,提交到github上,需要自己去服务器上执行git pull 拉取最新代码, 为了解决这种操作,自己再服务器上 ...
- sql中的 IF 条件语句的用法
IF 表达式 IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3 如下: SELECT ...
- MT【315】勾股数
(高考压轴题)证明以下命题:(1)对任意正整数$a$都存在正整数$b,c(b<c)$,使得$a^2,b^2,c^2$成等差数列.(2)存在无穷多个互不相似的三角形$\Delta_n$,其边长$a ...
- Python【第一篇】python安装、pip基本用法、变量、输入输出、流程控制、循环
一.python安装 Ubuntu下 系统版本已经同时安装了python2和python3 如果没有python3,可以参考这个貌似是印度阿三的安装视频:http://v.youku.com/v_sh ...
- [WC2018]通道
题目描述 http://uoj.ac/problem/347 题解 解法1 求三棵树的直径,看起来非常不可做,但是所有边权都是正的,可以让我们想到爬山. 所以我们可以按照BFS求树的直径的方法,随机一 ...
- A.01.11—模块的输出—输出复用和可配
对于输入来说,高边输入与低边输入可配,那对于输出来说,它有哪些可配的情况呢. 下图中展示了2种常见的类型. 第一种为同一驱动芯片内部的情况.对于OPL与ODL,即PWM低端输出和固态的低端输出,它们是 ...
- host-only局域网络
在网桥配置的情况下设置: 网桥配置链接 配置前: 配置后: vi /etc/sysconfig/network-scripts/ifcfg-eth0 这里是使用static静态配置,具体网络配置及声明 ...