Write() public method

public Write ( ) : void
return void
示例#1
0
            public bool Run()
            {
                if (il_file_list.Count == 0)
                {
                    Usage();
                }
                if (output_file == null)
                {
                    output_file = CreateOutputFilename();
                }
                try {
                    codegen = new CodeGen(output_file, target == Target.Dll, debugging_info, noautoinherit);
                    foreach (string file_path in il_file_list)
                    {
                        Report.FilePath = file_path;
                        ProcessFile(file_path);
                    }
                    if (scan_only)
                    {
                        return(true);
                    }

                    if (Report.ErrorCount > 0)
                    {
                        return(false);
                    }

                    if (target != Target.Dll && !codegen.HasEntryPoint)
                    {
                        Report.Error("No entry point found.");
                    }

                    // if we have a key and aren't assembling a netmodule
                    if ((keyname != null) && !codegen.IsThisAssembly(null))
                    {
                        LoadKey();
                        // this overrides any attribute or .publickey directive in the source
                        codegen.ThisAssembly.SetPublicKey(sn.PublicKey);
                    }

                    try {
                        codegen.Write();
                    } catch {
                        File.Delete(output_file);
                        throw;
                    }
                } catch (ILAsmException e) {
                    Error(e.ToString());
                    return(false);
                } catch (PEAPI.PEFileException pe) {
                    Error("Error : " + pe.Message);
                    return(false);
                }

                try {
                    if (sn != null)
                    {
                        Report.Message("Signing assembly with the specified strongname keypair");
                        return(Sign(output_file));
                    }
                } catch {
                    return(false);
                }

                return(true);
            }
示例#2
0
文件: Driver.cs 项目: nobled/mono
                        public bool Run ()
                        {
                                if (il_file_list.Count == 0)
                                        Usage ();
                                if (output_file == null)
                                        output_file = CreateOutputFilename ();
                                try {
                                        codegen = new CodeGen (output_file, target == Target.Dll, debugging_info);
                                        foreach (string file_path in il_file_list) {
                                                Report.FilePath = file_path;
                                                ProcessFile (file_path);
                                        }
                                        if (scan_only)
                                                return true;

                                        if (Report.ErrorCount > 0)
                                                return false;

                                        if (target != Target.Dll && !codegen.HasEntryPoint)
                                                Report.Error ("No entry point found.");

					// if we have a key and aren't assembling a netmodule
					if ((keyname != null) && !codegen.IsThisAssembly (null)) {
						LoadKey ();
						// this overrides any attribute or .publickey directive in the source
						codegen.ThisAssembly.SetPublicKey (sn.PublicKey);
					}

                                        try {
                                                codegen.Write ();
                                        } catch {
                                                File.Delete (output_file);
                                                throw;
                                        }
                                } catch (ILAsmException e) {
                                        Error (e.ToString ());
                                        return false;
                                } catch (PEAPI.PEFileException pe) {
                                        Error ("Error : " + pe.Message);
                                        return false;
                                } 

                                try {
					if (sn != null) {
						Report.Message ("Signing assembly with the specified strongname keypair");
						return Sign (output_file);
					}
                                } catch {
                                        return false;
                                }

                                return true;
                        }