public bool DoWork() { using (var vsHelper = new VisualStudioHelper(_dte2Service)) { if (!vsHelper.CanAccessPackageManifest()) { return(ReturnFailed("No package manifest found... \n")); } var sfn = vsHelper.GetSelectedItemPath(); var imageHelper = new ImageHelper(sfn); if (string.IsNullOrEmpty(sfn)) { return(ReturnFailed("No file selected, aborting... \n")); } var extension = Path.GetExtension(sfn); if (extension != ".png" && extension != ".svg") { return(ReturnFailed("Unsupported file selected (only .png & .svg allowed), aborting... \n")); } _outputWindow.OutputString("Starting generation of images... \n"); foreach (var tile in _tilesToGenerate) { _outputWindow.OutputString("Generating " + tile.XmlName + "... \n"); foreach (var scaleFactor in tile.ScaleFactors) { var savePath = GenerateSavePath(tile, scaleFactor, sfn); imageHelper.GenerateFile(tile, scaleFactor, savePath); vsHelper.AddFileToProject(savePath); vsHelper.AddTileToPackage(tile); } } _outputWindow.OutputString("Saving project... \n"); } return(true); }