I know a single file assembly consists of Manifest + IL + Resources. There is also an assembly type that groups its elements in multiple files, called a multi-file assembly. Visual Studio .NET IDE can only be used to create single-file assemblies, but Multifile assemblies can be created using command-line compilers.
This is all the information on the two types of assemblies that I could find, and google only returns http://msdn.microsoft.com/en-us/library/z38d5bzk(v=vs.71).aspx
But I am not satisfied and I cannot clearly say what both of them actually are. I want to know:
- What exactly is single file assembly? How to create, steps to create, how does it look?
- What exactly is multifile assembly?How to create, steps to create, how does it look?
Basically, a “single-file” assembly is an assembly that has everything contained in one file. This will be a file that has a .DLL or .EXE extension, and is the compiled .NET project. Visual studio creates these from C# projects (either library or application).
With command line compilers, you can split an assembly into multiple parts – where a single assembly’s Manifest contains the information required to find information that’s part of the assembly, but stored in a separate file. For example, you can keep a resource image (ie: a .bmp) that is a large resource in its own file, so that it isn’t necessary to load it just to open the assembly. Creation of multi-file assemblies is not supported by Visual Studio, but these will look like a DLL or EXE, plus zero or more netmodule files, plus zero or more resource files (which can be anything). The main DLL or EXE contains the manifest that specifies where the other files are located. The steps required to build this are detailed in How to: Build a Multifile Assembly.