Hey .net geeks,
Check this code out , it allow you to create your own assembly from code. you just have to do the following and you are on.
Imports
System
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Threading
Module Module1
Sub Main()
'Creating Assembly
Dim assemblyName As AssemblyName = New AssemblyName("SamAsm")
Dim assemblyBuilder As AssemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave)
'Creating module
Dim moduleBuilder As ModuleBuilder = assemblyBuilder.DefineDynamicModule("SamAsm.exe")
'Creating class file
Dim typeBuilder As TypeBuilder = moduleBuilder.DefineType("SamAsmType", TypeAttributes.Public Or TypeAttributes.Class)
'Creating Main Method
Dim methodBuilder1 As MethodBuilder = typeBuilder.DefineMethod("Main", MethodAttributes.Static Or MethodAttributes.Public, GetType(Void), New System.Type() {GetType(String)})
'Generating Code for method builder in IL
Dim ilGenerator As ILGenerator = methodBuilder1.GetILGenerator
ilGenerator.EmitWriteLine(
"Hello, Pakistan")
ilGenerator.Emit(OpCodes.Ret)
'Creating Class object (type) and accessing main method
Dim SamAsmType As Type = typeBuilder.CreateType
SamAsmType.GetMethod(
"Main").Invoke(Nothing, New String() {Nothing})
'Creating Entry Point and saving assembly
assemblyBuilder.SetEntryPoint(methodBuilder1, PEFileKinds.ConsoleApplication)
assemblyBuilder.Save(
"SamAsm.exe")
Console.ReadLine()
End Sub
End
Module