public static string GetProjectFilePath(string solutionFilePath, string projectRelativeToSolutionDirectoryFilePath)
        {
            var solutionDirectoryPath = PathUtilities.GetDirectoryPath(solutionFilePath);

            var projectFileUnresolvedPath = PathUtilities.Combine(solutionDirectoryPath, projectRelativeToSolutionDirectoryFilePath);

            var projectFilePath = PathUtilities.ResolveFilePath(projectFileUnresolvedPath);

            return(projectFilePath);
        }
        /// <summary>
        /// The project reference relative file paths are relative to the project directory, not file path.
        /// </summary>
        public static IEnumerable <string> GetProjectReferenceDependencyFilePathsForProjectDirectory(string projectDirectoryPath, IEnumerable <string> projectReferenceRelativeFilePaths)
        {
            foreach (var projectReferenceRelativeFilePath in projectReferenceRelativeFilePaths)
            {
                var projectFileUnresolvedPath = PathUtilities.Combine(projectDirectoryPath, projectReferenceRelativeFilePath);

                var projectFilePath = PathUtilities.ResolveFilePath(projectFileUnresolvedPath);
                yield return(projectFilePath);
            }
        }
        public string GetSolutionFilePath(string currentExecutableFilePath, string solutionFileName)
        {
            var binDebugNetCoreAppDirectoryPath = PathUtilities.GetDirectoryPath(currentExecutableFilePath);
            var binDebugDirectoryPath           = PathUtilities.GetParentDirectoryPath(binDebugNetCoreAppDirectoryPath);
            var binDirectoryPath      = PathUtilities.GetParentDirectoryPath(binDebugDirectoryPath);
            var projectDirectoryPath  = PathUtilities.GetParentDirectoryPath(binDirectoryPath);
            var solutionDirectoryPath = PathUtilities.GetParentDirectoryPath(projectDirectoryPath);

            var solutionFilePath = PathUtilities.Combine(solutionDirectoryPath, solutionFileName);

            return(solutionFilePath);
        }