public static WindowsAssembly CreateTempNetAssembly()
{
var assembly = NetAssemblyFactory.CreateAssembly("TempAssembly", false);
assembly.NetDirectory.EntryPointToken = 0x06000001;
var header = assembly.NetDirectory.MetadataHeader;
var tableStream = header.GetStream<TableStream>();
var mainMethod = new MethodDefinition("Main", MethodAttributes.Static,
new MethodSignature(header.TypeSystem.Void));
mainMethod.MetadataRow.Column6 = 1; // TODO: remove ParamList setter.
mainMethod.MethodBody = new MethodBody(mainMethod);
mainMethod.MethodBody.Instructions.Add(MsilInstruction.Create(MsilOpCodes.Ret));
tableStream.GetTable<MethodDefinition>().Add(mainMethod);
return assembly;
}