private static void AddProjectReference(DotnetProject project, DotnetProject refProject)
 {
     Dotnet.AddProjectToProjectReference(project.Path + project.Name, refProject.Path + refProject.Name)
     .ForwardStdOut()
     .ForwardStdErr()
     .Execute();
 }
        private static void CreateProject(DotnetProject project)
        {
            var args = new List <string> {
                "--name", project.Name,
                "--output", PathHelper.GetProjectRootPath() + $"/{project.Name}",
                "--no-restore"
            };

            project.Args = project.Args.Concat(args);
            Dotnet.New(project.Alias, project.Args.ToArray())
            .ForwardStdErr()
            .ForwardStdOut()
            .Execute();
        }
 private static void AddPackageReference(DotnetProject project, Package package)
 {
     //use latest version if no version is provided
     if (package.Version == null)
     {
         Dotnet.AddPackageReference($"{project.Path}{project.Name}", package.Name)
         .ForwardStdOut()
         .ForwardStdErr()
         .Execute();
     }
     else
     {
         Dotnet.AddPackageReference($"{project.Path}{project.Name}", package.Name, package.Version)
         .ForwardStdOut()
         .ForwardStdErr()
         .Execute();
     }
 }
        public void FindAndLoadProjects2(DotnetWorkspace workspace)
        {
            foreach (var solution in workspace.Solutions)
            {
                var scanPath = solution.GlobalJson.FolderPath;

                var projectJsonMatches = new Matcher()
                                         .AddInclude("**/project.json")
                                         .Execute(new DirectoryInfoWrapper(new DirectoryInfo(scanPath)));

                foreach (var file in projectJsonMatches.Files)
                {
                    var projectJsonPath = Path.Combine(scanPath, file.Path);
                    Console.WriteLine($"  Loading {projectJsonPath}");

                    var project = DotnetProject.Load(projectJsonPath);
                    project.Solution = solution;
                    solution.Projects.Add(project);
                }
            }
        }
        public void FindAndLoadProjects1(DotnetWorkspace workspace)
        {
            foreach (var solution in workspace.Solutions)
            {
                if (!solution.GlobalJson.ProjectFolders.Any())
                {
                    Console.WriteLine($"NO 'projects' folders {solution.GlobalJson.FolderPath}");
                    continue;
                }
                foreach (var projectFolder in solution.GlobalJson.ProjectFolders)
                {
                    var scanPath = Path.Combine(solution.GlobalJson.FolderPath, projectFolder.Path);

                    if (!scanPath.StartsWith(solution.GlobalJson.FolderPath) ||
                        projectFolder.Path.StartsWith("."))
                    {
                        Console.WriteLine($"OUTSIDE FOLDER {solution.GlobalJson.FolderPath}:{projectFolder.Path}");
                        continue;
                    }

                    Console.WriteLine($"Scanning {solution.GlobalJson.FolderPath}:{projectFolder.Path}");

                    var projectJsonMatches = new Matcher()
                                             .AddInclude("*/project.json")
                                             .Execute(new DirectoryInfoWrapper(new DirectoryInfo(scanPath)));

                    foreach (var file in projectJsonMatches.Files)
                    {
                        var projectJsonPath = Path.Combine(scanPath, file.Path);
                        Console.WriteLine($"  Loading {projectJsonPath}");

                        var project = DotnetProject.Load(projectJsonPath);
                        project.Solution = solution;
                        solution.Projects.Add(project);
                    }
                }
            }
        }