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); }
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; }