Exemple #1
0
        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
                });
            }
        }
Exemple #2
0
        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
                });
            }
        }
Exemple #3
0
        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
                });
            }
        }