代码之家  ›  专栏  ›  技术社区  ›  rwallace

在.NET中生成exe

  •  1
  • rwallace  · 技术社区  · 14 年前

    在.NET中,您可以在内存中生成字节代码,并可能将生成的程序保存到.exe文件中。为了完成第一步,我有以下测试代码改编自 http://www.code-magazine.com/Article.aspx?quickid=0301051

    var name = new AssemblyName();
    name.Name = "MyAssembly";
    var ad = Thread.GetDomain();
    var ab = ad.DefineDynamicAssembly(name, AssemblyBuilderAccess.Run);
    var mb = ab.DefineDynamicModule("MyModule");
    var theClass = mb.DefineType("MathOps", TypeAttributes.Public);
    var retType = typeof(System.Int32);
    var parms = new Type[2];
    parms[0] = typeof(System.Int32);
    parms[1] = typeof(System.Int32);
    var meb = theClass.DefineMethod("ReturnSum", MethodAttributes.Public, retType, parms);
    var gen = meb.GetILGenerator();
    gen.Emit(OpCodes.Ldarg_1);
    gen.Emit(OpCodes.Ldarg_2);
    gen.Emit(OpCodes.Add_Ovf);
    gen.Emit(OpCodes.Stloc_0);
    gen.Emit(OpCodes.Br_S);
    gen.Emit(OpCodes.Ldloc_0);
    gen.Emit(OpCodes.Ret);
    theClass.CreateType();
    

    如何执行第二步,并将结果保存到.exe?

    1 回复  |  直到 14 年前
        1
  •  2
  •   FrustratedWithFormsDesigner    14 年前

    我想你可能在找 AssemblyBuilder.Save