本文整理汇总了C#中PackageBuilder.GetCompatiblePackageDependencies方法的典型用法代码示例。如果您正苦于以下问题:C# PackageBuilder.GetCompatiblePackageDependencies方法的具体用法?C# PackageBuilder.GetCompatiblePackageDependencies怎么用?C# PackageBuilder.GetCompatiblePackageDependencies使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PackageBuilder
的用法示例。
在下文中一共展示了PackageBuilder.GetCompatiblePackageDependencies方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessDependencies
private void ProcessDependencies(PackageBuilder builder)
{
string packagesConfig = GetPackagesConfig();
// No packages config then bail out
if (String.IsNullOrEmpty(packagesConfig))
{
return;
}
Logger.Log(MessageLevel.Info, NuGetResources.UsingPackagesConfigForDependencies);
var file = new PackageReferenceFile(packagesConfig);
// Get the solution repository
IPackageRepository repository = GetPackagesRepository();
// Collect all packages
var packages = new List<IPackage>();
IDictionary<Tuple<string, SemanticVersion>, PackageReference> packageReferences = file.GetPackageReferences()
.ToDictionary(r => Tuple.Create(r.Id, r.Version));
foreach (PackageReference reference in packageReferences.Values)
{
if (repository != null)
{
IPackage package = repository.FindPackage(reference.Id, reference.Version);
if (package != null)
{
packages.Add(package);
}
}
}
// Add the transform file to the package builder
ProcessTransformFiles(builder, packages.SelectMany(GetTransformFiles));
var dependencies = builder.GetCompatiblePackageDependencies(targetFramework: null)
.ToDictionary(d => d.Id, StringComparer.OrdinalIgnoreCase);
// Reduce the set of packages we want to include as dependencies to the minimal set.
// Normally, packages.config has the full closure included, we only add top level
// packages, i.e. packages with in-degree 0
foreach (var package in GetMinimumSet(packages))
{
// Don't add duplicate dependencies
if (dependencies.ContainsKey(package.Id))
{
continue;
}
IVersionSpec spec = GetVersionConstraint(packageReferences, package);
var dependency = new PackageDependency(package.Id, spec);
dependencies[dependency.Id] = dependency;
}
// TO FIX: when we persist the target framework into packages.config file,
// we need to pull that info into building the PackageDependencySet object
builder.DependencySets.Clear();
builder.DependencySets.Add(new PackageDependencySet(null, dependencies.Values));
}
示例2: ProcessDependencies
private void ProcessDependencies(PackageBuilder builder)
{
// get all packages and dependencies, including the ones in project references
var packagesAndDependencies = new Dictionary<String, Tuple<IPackage, PackageDependency>>();
ApplyAction(p => p.AddDependencies(packagesAndDependencies));
// list of all dependency packages
var packages = packagesAndDependencies.Values.Select(t => t.Item1).ToList();
// Add the transform file to the package builder
ProcessTransformFiles(builder, packages.SelectMany(GetTransformFiles));
var dependencies = builder.GetCompatiblePackageDependencies(targetFramework: null)
.ToDictionary(d => d.Id, StringComparer.OrdinalIgnoreCase);
// Reduce the set of packages we want to include as dependencies to the minimal set.
// Normally, packages.config has the full closure included, we only add top level
// packages, i.e. packages with in-degree 0
foreach (var package in GetMinimumSet(packages))
{
// Don't add duplicate dependencies
if (dependencies.ContainsKey(package.Id))
{
continue;
}
var dependency = packagesAndDependencies[package.Id].Item2;
dependencies[dependency.Id] = dependency;
}
if (IncludeReferencedProjects)
{
AddProjectReferenceDependencies(dependencies);
}
// TO FIX: when we persist the target framework into packages.config file,
// we need to pull that info into building the PackageDependencySet object
builder.DependencySets.Clear();
builder.DependencySets.Add(new PackageDependencySet(null, dependencies.Values));
}