ILMerge在MSBuild与ILMerge在批处理文件中运行

网友投稿 694 2022-11-26

ILMerge在MSBuild与ILMerge在批处理文件中运行

ILMerge在MSBuild与ILMerge在批处理文件中运行

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 ” /> < Target Name = “ ILMerge ” > <! - ILMergePath属性指向ILMerge.exe控制台应用程序的位置- > < Exec Command = “ $(ILMergeConsolePath)/out:Merged.dll File1.dll File2.dll ” />

编辑项目​​.csproj​​​或​​.vbproj​​​文件(在相应​​ .. ​​​标记内,通常在文件末尾。如果编译特定目标,请使用显式目录,例如​​Bin\x64\Release​​:

虽然XML文件中通常会忽略空格,但在这种情况下,确切的文本将作为DOS命令处理,因此为了提高可读性,请使用克拉​​^​​(shift 6)行扩展器:

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 set your target executable name (typically [projectname].exe)SET APP_NAME=myapp.exe:: Set build, used for directory. Typically Release or DebugSET ILMERGE_BUILD=Debug:: Set platform, typically x64SET 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 fileSET 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.exeecho 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 :Donedir %APP_NAME%

龙腾一族至尊龙骑

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类
下一篇:Strom数据流分组解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~