Assembly linking is an acute angle of any application including multiple assemblies. Linking provides conclusive advantages for your .NET application by increasing reliability and security while reducing size. It allows package your application effectually.
When packaging you can combine assemblies using the assembly linker. When distributing several closely related but separate DLLs is not that much of a plague, it would be a nice if, since they are so closely interlaced, you could merge these different assemblies into one. The ability to merge multiple libraries together would simplify deployment in many cases; applications that use several different languages or huge applications written in the same language but built upon many different projects would benefit from single-assembly deployment.
The Skater's special Linker interface is the utility that can link multiple modules into a single file for deployment. It does the linkage afterwards your main assembly has been obfuscated. The Linker interface intended for linking multiple managed executables or assemblies into a single module or assembly. The assigned referenced and non-referenced assemblies will be linked into your final obfuscated assembly afterwards when obfuscation is done for your current open assembly. NOTE: The linked assemblies will not be obfuscated. Please obfuscate the joined modules before Linkage. Or you may suggest secure the combined libraries after Linkage.
Usually, if all the functionality of your distributed application is not required at once, you might want to consider having the application divided into separate modules or libraries. The .NET runtime will load each component only when a type is referenced.
Also packaging everything into a single file will bring performance improvements, mostly because the loader does not have to take the time to resolve all the dependency issues. Also, you do not have to worry about missing dlls when your application is deployed.