public void Execute() { if (_missingInputs.Any()) { Logger.Trace("Missing Inputs:"); Logger.Trace("---------------"); _missingInputs.Each(x => Console.WriteLine(x)); ThrowExceptions.Custom(Exc.GetStackTrace(), type, Exc.CallingMethod(), "MissingInput: " + Exc.Join(",", _missingInputs)); } Logger.Starting(_steps.Count); _substitutions.Trace(Logger); _substitutions.Set(INSTRUCTIONS, GetInstructions().Replace("\"", "'")); _steps.Each(x => { Logger.TraceStep(x); x.Alter(this); }); if (Solution != null) { Logger.Trace("Saving solution to {0}", Solution.Filename); Solution.Save(); } Substitutions.WriteTo(Root.AppendPath(Substitutions.ConfigFile)); WriteNugetImports(); Logger.Finish(); }