public override bool Execute() { _resultFolders.Clear(); try { Log.LogMessage(MessageImportance.Normal, "Searching Nuget package folder..."); if (string.IsNullOrEmpty(PackageID)) { throw new InvalidDataException("Nuget PackageID is not set"); } var targetFolders = (TargetFolders ?? Enumerable.Empty <ITaskItem>()).Select(f => f.ItemSpec).ToList(); if (!targetFolders.Any()) { targetFolders.Add(Environment.CurrentDirectory); targetFolders.Add(Environment.CurrentDirectory + "\\..\\"); } var packageFolders = NugetExtensions.FindPackageLattestVersionFolders(PackageID, targetFolders.ToArray()); if (!packageFolders.Any()) { Log.LogMessage(MessageImportance.Normal, " * There is no packages found"); return(true); } foreach (var packageFolder in packageFolders) { var path = Path.GetFullPath(packageFolder.Path); if (!string.IsNullOrEmpty(RelativeToPath)) { path = IOExtensions.MakeRelativePath(RelativeToPath, path); } Log.LogMessage(MessageImportance.Normal, " * Found package: {0}", path); _resultFolders.Add(new TaskItem(path)); } } catch (Exception e) { Log.LogError(e.ToString()); return(false); } return(true); }
private DelegateReplacement CreateNugetReplacer() { return(new DelegateReplacement("nuget", value => { var targetFolders = new List <string>(); if (!string.IsNullOrEmpty(ProjectDir)) { targetFolders.Add(ProjectDir); targetFolders.Add(ProjectDir + "\\..\\"); } if (!string.IsNullOrEmpty(SolutionDir)) { targetFolders.Add(SolutionDir); } targetFolders.Add(AppDomain.CurrentDomain.BaseDirectory); targetFolders.Add(AppDomain.CurrentDomain.BaseDirectory + "\\..\\"); var packageFolders = NugetExtensions.FindPackageLattestVersionFolders(value, targetFolders.ToArray()); return packageFolders.FirstOrDefault()?.Path; })); }
private static string GetValuesFromNupkg(string path, string packageName) { var nuspecContent = NugetExtensions.GetNuspecContent(path, packageName); return(string.Join(Environment.NewLine, nuspecContent.Select(x => $"{x.Key} {x.Value}"))); }