Пример #1
0
 public Project(string path, string solutionName, ProjectXml projectXml)
 {
     this.Name = System.IO.Path.GetFileNameWithoutExtension(path);
     this.Path = System.IO.Path.GetFullPath(path);
     this.SetPackageRefererences(projectXml, solutionName);
     this.SetProjectRefererences(projectXml, solutionName);
     //this.DisablePostBuildTargets(projectXml, solutionName);
 }
Пример #2
0
        private IEnumerable <ParsedPath> FindReferenceHintPaths()
        {
            var ns = new XmlNamespaceManager(new NameTable());

            ns.AddNamespace("msb", MsbuildNamespaceUri);

            var hintPathElements = ProjectXml.XPathSelectElements("//msb:HintPath", ns);

            return(hintPathElements
                   .Select(element => new ParsedPath(element.Value))
                   .Where(parsed => parsed.Parts.Count > 0));
        }
Пример #3
0
 private void SetPackageRefererences(ProjectXml projectXml, string solutionName)
 {
     this.PackageDependencies = new List <PackageReference>();
     foreach (var package in projectXml.ItemGroups.Where(x => x.PackageReference.Count != 0).Select(x => x.PackageReference))
     {
         foreach (var candidate in package.Where(x => x.Include.StartsWith(/*"CoreXF"*/ solutionName)).Select(x => new PackageReference(x)))
         {
             var found = this.PackageDependencies.SingleOrDefault(x => x.Name == candidate.Name);
             if (found == default)
             {
                 this.PackageDependencies.Add(candidate);
             }
         }
     }
 }
        internal ProjectXml ValidateAndInsertPrjHdr(string EnvironmentName, string ProjectId, string PrjNm, int CKy, int UsrKy)
        {
            string actionUri = "ValidateAndInsertPrjHdr";
            Dictionary <string, object> paramDictionary = new Dictionary <string, object>();

            paramDictionary.Add("CKy", CKy);
            paramDictionary.Add("UsrKy", UsrKy);
            paramDictionary.Add("ProjectId", ProjectId);
            paramDictionary.Add("PrjNm", PrjNm);

            ProjectXml list = new ProjectXml();

            list = RunApiOperation(
                validateAndInsertBaseUri,
                actionUri,
                EnvironmentName,
                paramDictionary,
                list.GetType()) as ProjectXml;

            return(list);
        }
Пример #5
0
        public override IEnumerable <PackageReferenceInfo> LoadPackageReferences()
        {
            var packagesRootFolder = GetPackagesRootFolder();
            var packages           = GetPackages();

            return(packages.Where(p => p != null));

            IEnumerable <PackageReferenceInfo> GetPackages()
            {
                var elements = ProjectXml.XPathSelectElements("//PackageReference");

                return(elements.Select(e => {
                    var packageId = e.Attribute("Include")?.Value;
                    var version = e.Attribute("Version")?.Value;

                    if (!String.IsNullOrWhiteSpace(packageId) && !String.IsNullOrWhiteSpace(version))
                    {
                        var folder = GetPackageFolder(packageId, version);
                        return new PackageReferenceInfo(
                            packageId,
                            version,
                            rootFolderPath: folder,
                            libSubfolderPath: "lib");
                    }

                    return null;
                }));
            }

            string GetPackageFolder(string packageId, string version)
            {
                var packageFolderPath = Path.Combine(
                    packagesRootFolder,
                    packageId.ToLower(),
                    version.ToLower());

                return(packageFolderPath);
            }
        }