//
using System;
-using System.IO;
using System.Reflection;
using Mono.Cecil;
class Program {
- static void Main (string [] args)
+ static int Main (string [] args)
{
Header ();
string file = args [0];
string output = args.Length > 1 ? args [1] : file;
+ bool replace = file == output;
try {
- AssemblyDefinition assembly = AssemblyFactory.GetAssembly (file);
- StripAssembly (assembly, output);
+ using (var assembly = AssemblyDefinition.ReadAssembly (file, new ReaderParameters { ReadWrite = replace })) {
+ StripAssembly (assembly, replace ? null : output);
+ }
- if (file != output)
- Console.WriteLine ("Assembly {0} stripped out into {1}", file, output);
- else
+ if (replace)
Console.WriteLine ("Assembly {0} stripped", file);
+ else
+ Console.WriteLine ("Assembly {0} stripped out into {1}", file, output);
+ return 0;
} catch (TargetInvocationException tie) {
Console.WriteLine ("Error: {0}", tie.InnerException);
} catch (Exception e) {
Console.WriteLine ("Error: {0}", e);
}
+ return 1;
}
static void StripAssembly (AssemblyDefinition assembly, string output)