public static void Main(string[] args) { bool help = false; int verbosity = 1; bool keep = false; bool optimize = false; bool decompile = false; string paths = null; string refs = null; var p = new OptionSet { { "h|?|help", "Print this help message", v => help = true }, { "v=|verbosity=", "0 is quiet, 1 is normal, 2 is verbose", v => verbosity = Int32.Parse(v) }, { "o|optimize", "Optimize generated IL", v => optimize = true }, { "keep", "do not strip compiled embedded xaml", v => keep = true }, { "p=|paths=|dependencypaths=", "look for dependencies in (comma separated) list of paths", v => paths = v }, { "r=", "referencepath", v => refs = v }, { "d|decompile", v => decompile = true } }; if (help || args.Length < 1) { ShowHelp(p); Environment.Exit(0); } List <string> extra = null; try { extra = p.Parse(args); } catch (OptionException) { Console.WriteLine("Type `xamlc --help' for more information."); return; } if (extra.Count == 0) { if (verbosity > 0) { Console.WriteLine("assembly missing"); ShowHelp(p); } Environment.Exit(0); } var assembly = extra[0]; XamlCTask.Compile(assembly, verbosity, keep, optimize, paths, refs, decompile); }
public static void Compile(Type type) { var assembly = type.Assembly.Location; var refs = from an in type.Assembly.GetReferencedAssemblies() let a = System.Reflection.Assembly.Load(an) select a.Location; var xamlc = new XamlCTask { Assembly = assembly, ReferencePath = string.Join(";", refs), KeepXamlResources = true, Type = type.FullName }; var exceptions = new List <Exception>(); if (!xamlc.Compile(exceptions) && exceptions.Any()) { throw exceptions [0]; } }