Beispiel #1
0
        private string saveBinaryFile(ProjectContext projectContext)
        {
            string binFileName = projectContext.GetBinaryNameEx();

            projectContext.EmitContext.AssemblyBuilder.Save(binFileName);
            CompileUtil.MoveBinary(projectContext);
            CompileUtil.DeletePDB(projectContext);
            string exBinFileName  = projectContext.GetBinaryNameEx();
            string toFileFullPath = Path.Combine(projectContext.BinarySaveDirectoryInfo.FullName, exBinFileName);

            return(toFileFullPath);
        }
Beispiel #2
0
        public static void GenerateBinary(ProjectContext context)
        {
            string             binFileName     = context.GetBinaryNameEx();
            var                assemblyName    = new AssemblyName(context.RootNameSpace);
            AssemblyBuilder    assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave);
            var                moduleBuilder   = assemblyBuilder.DefineDynamicModule(context.RootNameSpace, binFileName, true);
            EmitProjectContext emitContext     = new EmitProjectContext();

            emitContext.AssemblyName    = assemblyName;
            emitContext.AssemblyBuilder = assemblyBuilder;
            emitContext.ModuleBuilder   = moduleBuilder;
            context.EmitContext         = emitContext;
            setAttr(assemblyBuilder, context);
        }
Beispiel #3
0
        public static void MoveBinary(ProjectContext projectContext)
        {
            string exBinFileName    = projectContext.GetBinaryNameEx();
            string fromFileFullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, exBinFileName);
            string toFileFullPath   = Path.Combine(projectContext.BinarySaveDirectoryInfo.FullName, exBinFileName);

            if (File.Exists(toFileFullPath))
            {
                File.Delete(toFileFullPath);
            }
            if (File.Exists(fromFileFullPath) && fromFileFullPath != toFileFullPath)
            {
                File.Move(fromFileFullPath, toFileFullPath);
                File.Delete(fromFileFullPath);
            }
            CompileUtil.DeletePDB(projectContext);
        }