とりあえずobjectを作成しConsole.WriteLine(object)するだけのプログラムを作成するプログラム

サンプルソース
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Reflection.Emit;
using System.IO;

namespace Emit
{
    class Program
    {
        static void Main(string[] args)
        {
            ILGenerator il = null;

            string moduleName;
            moduleName = "Mod1.exe";

            AssemblyName name = new AssemblyName(Path.GetFileNameWithoutExtension(moduleName));
            AssemblyBuilder asmb = System.AppDomain.CurrentDomain.DefineDynamicAssembly(name, AssemblyBuilderAccess.Save);
            ModuleBuilder modb = asmb.DefineDynamicModule(moduleName);
            TypeBuilder typeb = modb.DefineType("Foo");

            MethodBuilder methb = typeb.DefineMethod("Main", MethodAttributes.Static, typeof(void), System.Type.EmptyTypes);

            il = methb.GetILGenerator();

            LocalBuilder lb = il.DeclareLocal(typeof(object));
            il.Emit(OpCodes.Newobj, typeof(object).GetConstructor(Type.EmptyTypes));
            il.Emit(OpCodes.Stloc_0);
            il.Emit(OpCodes.Ldloc_0);
            il.Emit(OpCodes.Call, typeof(Console).GetMethod("WriteLine", new Type[] { typeof(object) }));
            
            il.Emit(OpCodes.Ret);
            typeb.CreateType();
            modb.CreateGlobalFunctions();
            asmb.SetEntryPoint(methb);
            asmb.Save(moduleName);
            il = null;

        }
    }
}