void RestoreNuGetPackages() { Runtime.AssertMainThread(); RestorePackagesInProjectHandler.Run(Project); }
async Task <bool> Migrate(UnknownProject project, Solution solution, ProgressMonitor monitor) { FilePath projectFile; string migrationFile; if (project == null) { projectFile = null; migrationFile = solution.FileName; } else { projectFile = project.FileName; migrationFile = Path.Combine(Path.GetDirectoryName(projectFile), "project.json"); } if (DotNetCoreRuntime.IsMissing) { monitor.ReportError(GettextCatalog.GetString(".NET Core is not installed")); return(false); } var process = Runtime.ProcessService.StartProcess( DotNetCoreRuntime.FileName, $"migrate \"{migrationFile}\"", Path.GetDirectoryName(migrationFile), monitor.Log, monitor.Log, null); await process.Task; if (process.ExitCode > 0) { monitor.ReportError(GettextCatalog.GetString("An unspecified error occurred while running '{0}'", $"dotnet migrate({process.ExitCode})")); return(false); } if (project != null) { string newProjectFile; if (File.Exists(Path.ChangeExtension(projectFile, ".csproj"))) { newProjectFile = Path.ChangeExtension(projectFile, ".csproj"); } else if (File.Exists(Path.ChangeExtension(projectFile, ".fsproj"))) { newProjectFile = Path.ChangeExtension(projectFile, ".fsproj"); } else if (File.Exists(Path.ChangeExtension(projectFile, ".vbproj"))) { newProjectFile = Path.ChangeExtension(projectFile, ".vbproj"); } else { monitor.ReportError(GettextCatalog.GetString("Migrated project file not found.")); return(false); } var newProject = await project.ParentFolder.AddItem(monitor, newProjectFile); project.ParentFolder.Items.Remove(project); await newProject.ParentSolution.SaveAsync(monitor); RestorePackagesInProjectHandler.Run((DotNetProject)newProject); } else { solution.NeedsReload = true; FileService.NotifyFileChanged(solution.FileName); } return(true); }
void OnSdkProjectReloaded(ProjectReloadedEventArgs e) { SdkProjectBuilderMaintainer.OnProjectReload(e); RestorePackagesInProjectHandler.Run(e.NewProject.DotNetProject, restoreTransitiveProjectReferences: true); }