void RestoreNuGetPackages()
 {
     Runtime.AssertMainThread();
     RestorePackagesInProjectHandler.Run(Project);
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 void OnSdkProjectReloaded(ProjectReloadedEventArgs e)
 {
     SdkProjectBuilderMaintainer.OnProjectReload(e);
     RestorePackagesInProjectHandler.Run(e.NewProject.DotNetProject, restoreTransitiveProjectReferences: true);
 }