void EnsureBuildPackagingNugetInstalled(IProjectNode project) { var dteProject = project.As <EnvDTE.Project>(); if (!packageInstallerServices.IsBuildPackagingNuGetInstalled(dteProject)) { packageInstaller.InstallBuildPackagingNuget(dteProject); } }
public void RunFinished() { var solutionContext = new SolutionContext(solutionExplorer); solutionContext.BaseProjectName = SafeProjectName; if (ViewModel.UsePlatformSpecific) { solutionContext.SharedProject = solutionExplorer.Solution.UnfoldTemplate( Constants.Templates.SharedProject, SafeProjectName + "." + Constants.Suffixes.SharedProject); // HACK (NuGetTemplate): dteSolution2.GetProjectTemplate ("NuGet.Packaging.VisualStudio.Package", "NuGet") // is not working when "NuGet" is used as the language name // So for now we replicate the template for CS and set its visibility to hidden solutionContext.NuGetProject = solutionExplorer.Solution.UnfoldTemplate( Constants.Templates.NuGetPackage, SafeProjectName + "." + Constants.Suffixes.NuGetPackage); //solutionContext.NuGetProject = solutionExplorer.Solution.UnfoldTemplate( // Constants.Templates.NuGetPackage, // SafeProjectName + "." + Constants.Suffixes.NuGetPackage, //Constants.Language); foreach (var selectedPlatform in ViewModel.Platforms.Where(x => x.IsSelected)) { var platformProject = solutionExplorer.Solution.UnfoldTemplate( Constants.Templates.GetPlatformTemplate(selectedPlatform.Id), solutionContext.GetTargetProjectName(selectedPlatform)); var platformDteProject = platformProject.As <EnvDTE.Project>(); if (!packageInstallerServices.IsBuildPackagingNuGetInstalled(platformDteProject)) { packageInstaller.InstallBuildPackagingNuget(platformDteProject); } platformProject.AddReference(solutionContext.SharedProject); solutionContext.NuGetProject.AddReference(platformProject); } } else { solutionContext.SharedProject = solutionExplorer.Solution.UnfoldTemplate( Constants.Templates.PortableClassLibrary, SafeProjectName); } }
protected override void Execute() { if (ActiveProject == null) { return; } var project = ActiveProject.As <EnvDTE.Project>(); var vsBuildPropertyStorage = ActiveProject.AsVsHierarchy() as IVsBuildPropertyStorage; if (vsBuildPropertyStorage != null) { var storage = new BuildPropertyStorage(vsBuildPropertyStorage); var viewModel = new PackageMetadataViewModel(storage); if (!packageInstallerServices.IsBuildPackagingNuGetInstalled(project)) { // Provide default values for required fields/properties viewModel.PackageId = project.Name; viewModel.PackageVersion = "1.0.0"; viewModel.Description = project.Name; viewModel.Authors = "MyCompany"; } var view = new PackageMetadataView() { DataContext = viewModel }; if (dialogService.ShowDialog(view) == true) { storage.CommitChanges(); if (!packageInstallerServices.IsBuildPackagingNuGetInstalled(project)) { packageInstaller.InstallBuildPackagingNuget(project); } buildService.Pack(ActiveProject); } } }