internal static MsBuildProjectPrimitive GetProjectWithMsBuild( string localPath, string originalProjectName) { try { ProjectCollection.GlobalProjectCollection.UnloadAllProjects(); var project = new Project(localPath); var parser = new PathParser(); var projectName = parser.GetLastItemFromPath(localPath); var targetFrameworks = MsBuildPropertyStatics.GetTargetFrameworksIfApplicable(project); var relativePaths = MsBuildPropertyStatics.GetRelativeProjectReferencePaths(project); var defaultNamespace = MsBuildPropertyStatics.GetDefaultNamespace(project); var assemblyName = MsBuildPropertyStatics.GetAssemblyName(project); var originalProjectNameExpr = originalProjectName != null ? "<-" + originalProjectName : string.Empty; Console.WriteLine($"Found project {projectName} {originalProjectNameExpr}"); return(new MsBuildProjectPrimitive { Name = projectName, TargetFrameworks = targetFrameworks?.ToList(), DefaultNamespace = defaultNamespace, AssemblyName = assemblyName, RelativeProjectReferencePaths = relativePaths.ToList() }); } catch (Exception e) when (e is InvalidProjectFileException || e is InvalidOperationException || e is IOException) { return(new MsBuildProjectPrimitive { Failed = true, Error = e }); } }
internal static MsBuildSolutionPrimitive GetSolutionWithMsBuild( string localPath, string originalSolutionName) { try { ProjectCollection.GlobalProjectCollection.UnloadAllProjects(); var solution = SolutionFile.Parse(localPath); var parser = new PathParser(); var solutionName = parser.GetLastItemFromPath(localPath); var configurations = MsBuildPropertyStatics.GetConfigurations(solution); var relativePaths = MsBuildPropertyStatics.GetProjectRelativePaths(solution); var originalSolutionNameExpr = originalSolutionName != null ? "<-" + originalSolutionName : string.Empty; Console.WriteLine($"Found solution {solutionName} {originalSolutionNameExpr}"); return(new MsBuildSolutionPrimitive { Name = solutionName, Configurations = configurations, RelativeProjectPaths = relativePaths }); } catch (Exception e) when (e is InvalidProjectFileException || e is InvalidOperationException || e is IOException) { return(new MsBuildSolutionPrimitive { Error = e, Failed = true }); } }
internal static MsBuildPublishProfilePrimitive GetPublicProfileWithMsBuild( string localPath, string originalPublishProfileName) { try { ProjectCollection.GlobalProjectCollection.UnloadAllProjects(); var publishProfile = new Project(localPath); var parser = new PathParser(); var publishProfileName = parser.GetLastItemFromPath(localPath); var publishUrl = MsBuildPropertyStatics.GetPublishUrl(publishProfile); var originalPublishProfileNameExpr = originalPublishProfileName != null ? "<-" + originalPublishProfileName : string.Empty; Console.WriteLine($"Found publish profile {publishProfileName} {originalPublishProfileNameExpr}"); return(new MsBuildPublishProfilePrimitive { Name = publishProfileName, PublishUrl = publishUrl }); } catch (Exception e) when (e is InvalidProjectFileException || e is InvalidOperationException || e is IOException) { return(new MsBuildPublishProfilePrimitive { Failed = true, Error = e }); } }