Skip to main content

.NET程序集合并工具操作指引

程序集合并介绍#

.NET程序集合并功能是将多个dll合并到一个dll或exe文件中,这种方式可以减少应用程序启动时需要加载的文件数量,也可以减少部署时的文件管理,降低版本冲突的可能性等优势。

市面上可以进行.NET程序集合并的一般有ILMergeILRepack等工具,为了方便用户使用,Virbox Protector也提供了.NET程序集合并工具,以下简单介绍工具的使用操作步骤。

界面操作#

1.打开Virbox Protector工具;

2.点击工具->.NET程序集合并,如图所示:

3.打开工具界面,如图所示:

输出文件:指合并后的dll输出路径主程序集:选择合并dll的主dll或exe程序集列表:指要合并的dll文件列表

注意:

1).NET程序集列表里的文件合并的前提是:待合并的dll之间有调用关系,且合并成的那个dll与exe之间也有调用关系;

2)若多个dll之间没有调用关系,主程序exe都可以直接调用,则主程序集需要指定exe,均合并到主程序exe中。

命令行操作#

参数介绍

参数介绍
-ilmerge程序集合并
<main_assembly>主程序集文件
<other_assemblies ...> 待合并的程序集文件列表
-o输出文件

使用 -ilmerge 选项进行合并:

virboxprotector_con -ilmerge <main_assembly> <other_assemblies ...> -o <output_path>

举例

若多个dll之间没有调用关系,主程序exe都可以直接调用,则主程序集需要指定exe,均合并到主程序exe中。

virboxprotector_con -ilmerge Project.exe MyLibrary1.dll MyLibrary2.dll -o Merged/Project.exe

若待合并的dll之间有调用关系,且合并成的那个dll与exe之间也有调用关系时,将dll合并到主dll中。

virboxprotector_con -ilmerge MainLibrary.dll MyLibrary1.dll MyLibrary2.dll -o Merged/MainLibrary.dll

注意#

1.如果程序中使用到动态加载(如 Assembly.LoadFile(path)),则不建议进行程序集合并,否则程序运行很可能会出问题。

2.该工具只是.NET程序集合并工具,并不具备加固功能。若想对合并后的程序保护,建议使用Virbox Protector工具。

3..NET程序集合并工具和使用加固工具Virbox Protector的顺序是?

答:先对dll程序集进行合并,再对合并后的文件进行加固。