In this chapter, we have examined how assemblies are implemented and gone over the process of creating a complex, multi-module strongly named assembly that has satellite resource assemblies. In more detail, we have considered the PE format of assembly files that contain IL code, and seen how each assembly module is stored in a format which extends the classic portable executable format recognized by all 32-bit versions of Windows. We have indicated some of the flexibility benefits that this format offers, and then studied the structure of the Global Assembly Cache as well as reviewing some of the techniques that can be used to extract metadata and other information from assemblies, both at the command line and from within your code.
Finally, we have gone over the rich model for localizing resources, and presented a couple of examples that illustrate building a complex, localized, application that contains a group of assemblies.