public DisassembledAssembly Disassemble(IncomingAssembly assembly, Configuration configuration) { ProcessRunner runner = new ProcessRunner(); Pathname ilPath = assembly.Path.ChangeDirectory(configuration.OutputDirectory).ChangeExtension("il"); runner.Run(configuration.IlDasmPath, "/NOBAR", assembly.Path.AsString, "/OUT:" + ilPath); return new DisassembledAssembly(ilPath, assembly.Type); }
public AssembledAssembly Assemble(DisassembledAssembly assembly, Configuration configuration) { ProcessRunner runner = new ProcessRunner(); Pathname binaryPath = assembly.Path.ChangeDirectory(configuration.OutputDirectory).ChangeExtension(assembly.Type.ToExtension()); runner.Run(configuration.IlAsmPath, assembly.Path.AsString, "/QUIET", "/DEBUG", assembly.Type.ToIlAsmArgument(), "/KEY:" + configuration.KeyFile.AsString); PublicKeyToken publicKeyToken = ReadAssemblyPublicKeyToken(binaryPath); return new AssembledAssembly(binaryPath, publicKeyToken); }
public void SignAssemblies(IEnumerable<IncomingAssembly> assemblies, Configuration configuration) { foreach (IncomingAssembly incoming in assemblies) { Console.WriteLine("Disassembling " + incoming.Path.FileName); DisassembledAssembly disassembledAssembly = _disassembler.Disassemble(incoming, configuration); Console.WriteLine("Transforming"); DisassembledIl il = _ilReader.Read(disassembledAssembly.Path); _ilWriter.Write(il, disassembledAssembly.Path); Console.WriteLine("Assembling"); AssembledAssembly assembledAssembly = _assembler.Assemble(disassembledAssembly, configuration); _publicKeyTokenProvider.Add(assembledAssembly); Console.WriteLine("Done with " + incoming.Path.FileName); } }