General Assembly Structure

You might take it for granted that the assemblies produced by the .NET Framework exist side by side with executables and DLLs that are produced by unmanaged tools (such as VC++ 6.0). When you think about the metadata that is contained in an assembly as well as the whole .NET Managed Runtime, you might wonder how this is accomplished. You don't have to run a .NET executable assembly with something such as clr hello.exe. You can just run the executable and magic happens. The executable automatically starts up in a managed environment. How is this accomplished?

The reason that unmanaged code can seamlessly coexist with managed code or .NET assemblies is because of the flexibility that is built into the Portable Executable ...

Get .NET Common Language Runtime Unleashed now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.