public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { var provider = WizardHelpers.GetProvider(automationObject); if (_wizard == null) { try { Directory.Delete(replacementsDictionary["$destinationdirectory$"]); Directory.Delete(replacementsDictionary["$solutiondirectory$"]); } catch { // If it fails (doesn't exist/contains files/read-only), let the directory stay. } var uiShell = ServiceProvider.GlobalProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; Debug.Assert(uiShell != null, "uiShell was null."); uiShell.ShowMessageBox(0, Guid.Empty, SR.ProductName, ProjectWizardResources.AzureToolsRequired, null, 0, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST, OLEMSGICON.OLEMSGICON_CRITICAL, 1, out var result); // User cancelled, so go back to the New Project dialog throw new WizardBackoutException(); } // Run the original wizard to get the right replacements _wizard.RunStarted(automationObject, replacementsDictionary, runKind, customParams); }
public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { var provider = WizardHelpers.GetProvider(automationObject); if (_wizard == null) { try { Directory.Delete(replacementsDictionary["$destinationdirectory$"]); Directory.Delete(replacementsDictionary["$solutiondirectory$"]); } catch { // If it fails (doesn't exist/contains files/read-only), let the directory stay. } var dlg = new TaskDialog(provider) { Title = SR.ProductName, MainInstruction = ProjectWizardResources.AzureToolsRequired, Content = ProjectWizardResources.AzureToolsInstallInstructions, AllowCancellation = true }; var download = new TaskDialogButton(ProjectWizardResources.DownloadAndInstall); dlg.Buttons.Add(download); dlg.Buttons.Add(TaskDialogButton.Cancel); if (dlg.ShowModal() == download) { Process.Start(new ProcessStartInfo(AzureToolsDownload)); throw new WizardCancelledException(); } // User cancelled, so go back to the New Project dialog throw new WizardBackoutException(); } if (_recommendUpgrade) { var sm = SettingsManagerCreator.GetSettingsManager(provider); var store = sm.GetReadOnlySettingsStore(SettingsScope.UserSettings); if (!store.CollectionExists(DontShowUpgradeDialogAgainCollection) || !store.GetBoolean(DontShowUpgradeDialogAgainCollection, DontShowUpgradeDialogAgainProperty, false)) { var dlg = new TaskDialog(provider) { Title = SR.ProductName, MainInstruction = ProjectWizardResources.AzureToolsUpgradeRecommended, Content = ProjectWizardResources.AzureToolsUpgradeInstructions, AllowCancellation = true, VerificationText = ProjectWizardResources.DontShowAgain }; var download = new TaskDialogButton(ProjectWizardResources.DownloadAndInstall); dlg.Buttons.Add(download); var cont = new TaskDialogButton(ProjectWizardResources.ContinueWithoutAzureToolsUpgrade); dlg.Buttons.Add(cont); dlg.Buttons.Add(TaskDialogButton.Cancel); var response = dlg.ShowModal(); if (response != cont) { try { Directory.Delete(replacementsDictionary["$destinationdirectory$"]); Directory.Delete(replacementsDictionary["$solutiondirectory$"]); } catch { // If it fails (doesn't exist/contains files/read-only), let the directory stay. } } if (dlg.SelectedVerified) { var rwStore = sm.GetWritableSettingsStore(SettingsScope.UserSettings); rwStore.CreateCollection(DontShowUpgradeDialogAgainCollection); rwStore.SetBoolean(DontShowUpgradeDialogAgainCollection, DontShowUpgradeDialogAgainProperty, true); } if (response == download) { Process.Start(new ProcessStartInfo(AzureToolsDownload)); throw new WizardCancelledException(); } else if (response == TaskDialogButton.Cancel) { // User cancelled, so go back to the New Project dialog throw new WizardBackoutException(); } } } // Run the original wizard to get the right replacements _wizard.RunStarted(automationObject, replacementsDictionary, runKind, customParams); }