private void PerformPackageInstall( IVsPackageInstaller packageInstaller, Project project, VsTemplateWizardInstallerConfiguration configuration) { string repositoryPath = configuration.RepositoryPath; var failedPackageErrors = new List <string>(); IPackageRepository repository = configuration.IsPreunzipped ? (IPackageRepository) new UnzippedPackageRepository(repositoryPath) : (IPackageRepository) new LocalPackageRepository(repositoryPath); foreach (var package in configuration.Packages) { // Does the project already have this package installed? if (_packageServices.IsPackageInstalled(project, package.Id)) { // If so, is it the right version? if (!_packageServices.IsPackageInstalled(project, package.Id, package.Version)) { // No? OK, write a message to the Output window and ignore this package. ShowWarningMessage(String.Format(VsResources.TemplateWizard_VersionConflict, package.Id, package.Version)); } // Yes? Just silently ignore this package! } else { try { _dte.StatusBar.Text = String.Format(CultureInfo.CurrentCulture, VsResources.TemplateWizard_PackageInstallStatus, package.Id, package.Version); packageInstaller.InstallPackage(repository, project, package.Id, package.Version.ToString(), ignoreDependencies: true, skipAssemblyReferences: package.SkipAssemblyReferences); } catch (InvalidOperationException exception) { failedPackageErrors.Add(package.Id + "." + package.Version + " : " + exception.Message); } } } if (failedPackageErrors.Any()) { var errorString = new StringBuilder(); errorString.AppendFormat(VsResources.TemplateWizard_FailedToInstallPackage, repositoryPath); errorString.AppendLine(); errorString.AppendLine(); errorString.Append(String.Join(Environment.NewLine, failedPackageErrors)); ShowErrorMessage(errorString.ToString()); } }
private void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { if (runKind != WizardRunKind.AsNewProject && runKind != WizardRunKind.AsNewItem) { ShowErrorMessage(VsResources.TemplateWizard_InvalidWizardRunKind); throw new WizardBackoutException(); } _dte = (DTE)automationObject; var vsTemplatePath = (string)customParams[0]; _configuration = GetConfigurationFromVsTemplateFile(vsTemplatePath); if (replacementsDictionary != null) { AddTemplateParameters(replacementsDictionary); } }
private void PerformPackageInstall( IVsPackageInstaller packageInstaller, Project project, VsTemplateWizardInstallerConfiguration configuration) { string repositoryPath = configuration.RepositoryPath; var failedPackageErrors = new List<string>(); IPackageRepository repository = configuration.IsPreunzipped ? (IPackageRepository)new UnzippedPackageRepository(repositoryPath) : (IPackageRepository)new LocalPackageRepository(repositoryPath); foreach (var package in configuration.Packages) { // Does the project already have this package installed? if (_packageServices.IsPackageInstalled(project, package.Id)) { // If so, is it the right version? if (!_packageServices.IsPackageInstalled(project, package.Id, package.Version)) { // No? OK, write a message to the Output window and ignore this package. ShowWarningMessage(String.Format(VsResources.TemplateWizard_VersionConflict, package.Id, package.Version)); } // Yes? Just silently ignore this package! } else { try { _dte.StatusBar.Text = String.Format(CultureInfo.CurrentCulture, VsResources.TemplateWizard_PackageInstallStatus, package.Id, package.Version); packageInstaller.InstallPackage(repository, project, package.Id, package.Version.ToString(), ignoreDependencies: true, skipAssemblyReferences: package.SkipAssemblyReferences); } catch (InvalidOperationException exception) { failedPackageErrors.Add(package.Id + "." + package.Version + " : " + exception.Message); } } } if (failedPackageErrors.Any()) { var errorString = new StringBuilder(); errorString.AppendFormat(VsResources.TemplateWizard_FailedToInstallPackage, repositoryPath); errorString.AppendLine(); errorString.AppendLine(); errorString.Append(String.Join(Environment.NewLine, failedPackageErrors)); ShowErrorMessage(errorString.ToString()); } }
private void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { if (runKind != WizardRunKind.AsNewProject && runKind != WizardRunKind.AsNewItem) { ShowErrorMessage(VsResources.TemplateWizard_InvalidWizardRunKind); throw new WizardBackoutException(); } _dte = (DTE)automationObject; if (customParams.Length > 0) { var vsTemplatePath = (string)customParams[0]; _configuration = GetConfigurationFromVsTemplateFile(vsTemplatePath); } if (replacementsDictionary != null) { AddTemplateParameters(replacementsDictionary); } }
private void RunStarted(object automationObject, WizardRunKind runKind, object[] customParams) { if (runKind != WizardRunKind.AsNewProject && runKind != WizardRunKind.AsNewItem) { ShowErrorMessage(VsResources.TemplateWizard_InvalidWizardRunKind); throw new WizardBackoutException(); } DTE = (DTE)automationObject; var vsTemplatePath = (string)customParams[0]; _configuration = GetConfigurationFromVsTemplateFile(vsTemplatePath); }