private void GetAllDependencies(IPackage current, List<IPackage> collectedDependencies)
{
Debug.Assert(current != null);
this.logger.LogDebug(UIResources.NG_ResolvingPackageDependencies, current.Id, current.Version);
foreach (PackageDependency dependency in current.GetCompatiblePackageDependencies(null))
{
IPackage dependencyPackage = this.packageManager.LocalRepository.ResolveDependency(dependency, true, true);
if (dependencyPackage == null)
{
this.logger.LogWarning(UIResources.NG_FailedToResolveDependency, dependency.Id, dependency.VersionSpec.ToString());
}
else
{
if (collectedDependencies.Contains(dependencyPackage))
{
this.logger.LogDebug(UIResources.NG_DuplicateDependency, dependencyPackage.Id, dependencyPackage.Version);
}
else
{
this.logger.LogDebug(UIResources.NG_AddingNewDependency, dependencyPackage.Id, dependencyPackage.Version);
collectedDependencies.Add(dependencyPackage);
GetAllDependencies(dependencyPackage, collectedDependencies);
}
}
}
}