private void UpdateMetaData() { if (HintPath.IsNotEmpty()) { this.BuildItem.SetMetadata(HintPathAtt, HintPath); } if (FusionName.IsNotEmpty()) { this.BuildItem.SetMetadata("FusionName", FusionName); } if (Aliases.IsNotEmpty()) { this.BuildItem.SetMetadata("Aliases", Aliases); } if (DisplayName.IsNotEmpty()) { this.BuildItem.SetMetadata("Name", DisplayName); } if (SpecificVersion.HasValue) { this.BuildItem.SetMetadata("SpecificVersion", SpecificVersion.Value.ToString()); } if (Private.HasValue) { this.BuildItem.SetMetadata("Private", Private.Value.ToString().ToLower()); } }
public LibReference(string hintPathBeforePrefix, XElement element, XNamespace ns) { var hintPathElement = element.Descendants(ns + "HintPath").First(); HintPath = hintPathElement.Value; PathVersionPart = HintPath.Substring( hintPathBeforePrefix.Length, HintPath.IndexOfAny( new[] { '\\', '/' }, hintPathBeforePrefix.Length) - hintPathBeforePrefix.Length); var packageRelativePath = HintPath.Substring(hintPathBeforePrefix.Length + PathVersionPart.Length + 1); var pathSegments = packageRelativePath.Split(Path.DirectorySeparatorChar); if (pathSegments[0] == "lib") { TargetFrameworkVersion = pathSegments .Skip(1) .Take(1) .Where(x => knownFrameworkVersions.Contains(x, StringComparer.OrdinalIgnoreCase)) .Select(x => x.ToLower()) .FirstOrDefault(); } }
public override int GetHashCode() { unchecked { var hashCode = (Name != null ? Name.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (HintPath != null ? HintPath.GetHashCode() : 0); return((hashCode * 397) ^ (Aliases != null ? Aliases.GetHashCode() : 0)); } }
public override string ToString() { if (HintPath.IsNotNullOrEmpty()) { var fi = new FileInfo(HintPath); if (!fi.Exists) { Warnings.Add("HintPath not found."); } } HintPathAbsolute = HintPath; if (HintPath.StartsWith(".")) { // Try and find the dll referred to var projectFileFolder = new FileInfo(ProjectFile).Directory; this.ProjectRoot = projectFileFolder.FullName; var absoluteAssembly = new FileInfo(Path.Combine(projectFileFolder.FullName, HintPath)); HintPathAbsoluteExists = absoluteAssembly.Exists; HintPathAbsolute = absoluteAssembly.FullName; Warnings.Add("Checking: " + absoluteAssembly.FullName); if (absoluteAssembly.Exists == false) { Warnings.Add("@@" + absoluteAssembly.FullName + " not found."); } } var result = new StringBuilder("[" + GetType().FullName + "]\n"); result.AppendLine("Assembly: " + Assembly); result.AppendLine("ProjectRoot: " + ProjectRoot); result.AppendLine("HintPath: " + HintPath); result.AppendLine("HintPathAbsolute: " + HintPathAbsolute); result.AppendLine("HintPathAbsoluteExists: " + HintPathAbsoluteExists); result.AppendLine("IsOutSideProjectPath: " + IsOutSideProjectPath(HintPathAbsolute)); foreach (var item in Warnings) { result.AppendLine("Warning: " + item); } return(result.ToString()); }
private void LoadHintPath(VsProject project, ProjectItem projectItem) { HintPath = projectItem.Metadata.Any(m => m.Name == "HintPath") ? projectItem.Metadata.Single(m => m.Name == "HintPath").EvaluatedValue : null; if (HintPath != null) { var packagesPath = project.RelativeNuGetPackagesPath; if (HintPath.StartsWith(packagesPath)) { var startIndex = packagesPath.Length; var endIndex = HintPath.IndexOf("\\", startIndex, StringComparison.InvariantCulture); if (endIndex != -1) { IsNuGetReference = true; var isVersionPart = true; var nuGetPackageVersion = string.Empty; var nuGetPackage = string.Empty; var segments = HintPath.Substring(startIndex, endIndex - startIndex).Split('.'); foreach (var segment in segments.Reverse()) { if (isVersionPart) { int number = 0; if (int.TryParse(segment, out number)) { nuGetPackageVersion = segment + "." + nuGetPackageVersion; } else { nuGetPackage = segment; isVersionPart = false; } } else { nuGetPackage = segment + "." + nuGetPackage; } } NuGetPackageName = nuGetPackage.Trim('.'); NuGetPackageVersion = nuGetPackageVersion.Trim('.'); } } } }
/// <inheritdoc/> public override int GetHashCode() { return(HintPath?.GetHashCode() ?? 0); }
public override string ToString() { return($"{(HintPath == null ? AssemblyName : HintPath.ToString())} {(FileVersion == null ? "" : FileVersion.ToString())}"); }