Emitting Resources with Reflection Emit
Resources that are recorded in the assembly manifest can be managed resources or manifest resource blobs, and each of these can be included in the assembly either by linking or by embedding. All four scenarios are supported for dynamic assemblies.
To embed a managed resource into the manifest module of a dynamic assembly, or into a satellite module, use the ModuleBuilder.DefineResource method to get a resource writer, and the ResourceWriter.AddResource method to add the resource.
To link a manifest resource blob into a dynamic assembly, use the AssemblyBuilder.AddResourceFile method to add the linked resource.
In addition, a single Win32 resource can be attached to an assembly using the AssemblyBuilder.DefineUnmanagedResource method or the ModuleBuilder.DefineUnmanagedResource method. This resource does not appear in the assembly manifest.
An unmanaged version information resource can be added to a dynamic assembly using the AssemblyBuilder.DefineVersionInfoResource method. DefineVersionInfoResource builds a version information resource using the properties of the AssemblyName class.