private void AddBundle(object sender, EventArgs e) { var item = ProjectHelpers.GetSelectedItems().FirstOrDefault(); if (item == null || item.ContainingProject == null) return; string folder = item.ContainingProject.GetRootFolder(); string configFile = Path.Combine(folder, Constants.FILENAME); IEnumerable<string> files = ProjectHelpers.GetSelectedItemPaths().Select(f => MakeRelative(configFile, f)); string inputFile = item.Properties.Item("FullPath").Value.ToString(); string outputFile = GetOutputFileName(inputFile, Path.GetExtension(files.First())); if (string.IsNullOrEmpty(outputFile)) return; BundlerMinifierPackage._dte.StatusBar.Progress(true, "Creating bundle", 0, 3); string relativeOutputFile = MakeRelative(configFile, outputFile); Bundle bundle = CreateBundleFile(files, relativeOutputFile); BundleHandler bundler = new BundleHandler(); bundler.AddBundle(configFile, bundle); BundlerMinifierPackage._dte.StatusBar.Progress(true, "Creating bundle", 1, 3); item.ContainingProject.AddFileToProject(configFile, "None"); BundlerMinifierPackage._dte.StatusBar.Progress(true, "Creating bundle", 2, 3); BundlerMinifierPackage._dte.ItemOperations.OpenFile(configFile); BundlerMinifierPackage._dte.StatusBar.Progress(true, "Creating bundle", 3, 3); BundleService.Process(configFile); BundlerMinifierPackage._dte.StatusBar.Progress(false, "Creating bundle"); BundlerMinifierPackage._dte.StatusBar.Text = "Bundle created"; }