public static bool PackageExists(INugetSpec nuget, string packagesOutputDirectory) { return File.Exists(packagesOutputDirectory.Combine(nuget.OutputPackageFilename)); }
public override void ReplaceProjectByNuget(INugetSpec package, string assemblyName, string framework) { // TODO }
public static void CopyIfNew(ILogger logger, INugetSpec nuget, string packagesOutputDirectory, string destination) { var package = nuget.OutputPackageFilename; var destinationPackage = destination.Combine(package); if (File.Exists(destinationPackage)) return; var originPackage = packagesOutputDirectory.Combine(package); if (File.Exists(originPackage)) { try { logger.Info("Publishing package '{0}' to '{1}'", package, destination); File.Copy(originPackage, destinationPackage); } catch (Exception e) { logger.Error(e); } } else { logger.ErrorDetail("No built package for nuget '{0}'", nuget.Name); } }
private void DoAddNuget(ILogger logger, INugetSpec nugetComponent, IComponentFinder components, string packagesOutputDirectory, bool firstlevel) { try { if (Dependencies.Any(c => c.Equals(nugetComponent))) { if (firstlevel) logger.Info("Component already references nuget {0}", nugetComponent.Name); } else { AddToPackagesConfig(nugetComponent, PackagesConfigFilePath); _dependencies.Add(new NugetReference(nugetComponent)); var framework = nugetComponent.CompatibleFramework(_targetFrameworkVersion); foreach (var assembly in nugetComponent.AssemblyNames) FullPath.TransformFile(xml => AddSingleLibReference(xml, nugetComponent.Name, assembly, framework, RelativeInstalledPackagesDir)); } foreach (var subdependency in nugetComponent.Dependencies) { var dep = components.FindComponent<INugetSpec>("^" + subdependency.Name + "$", interactive: false); if (dep != null) DoAddNuget(logger, dep, components, packagesOutputDirectory, false); } if (!Directory.Exists(InstalledPackagesDir.Combine(nugetComponent.Name))) BuildHelper.InstallPackage(logger, nugetComponent, InstalledPackagesDir, packagesOutputDirectory); } catch (Exception e) { logger.ErrorDetail("Could not add all recursive references of needed nugets. Cause: {0}", e.Message); } }
public virtual bool AddNuget(ILogger logger, INugetSpec nugetComponent, IComponentFinder components, string packagesOutputDirectory) { DoAddNuget(logger, nugetComponent, components, packagesOutputDirectory, true); return true; }
public virtual void ReplaceProjectByNuget(INugetSpec package, string assemblyName, string framework) { FullPath.TransformFile(xml => ReplaceProjectByNuget(xml, package.Name, assemblyName, framework, InstalledPackagesDir)); }
public bool ReplaceProjectReference(ILogger logger, INugetSpec package, string assemblyName, string framework, ICollection<string> installDirs) { try { if (Dependencies.Any(dependency => dependency.Equals(package) && dependency is ProjectReference)) { logger.Info("Replacing project reference in {0} for {1}", Name, package.Name); ReplaceProjectByNuget(package, assemblyName, framework); AddToPackagesConfig(package, PackagesConfigFilePath); if (!installDirs.Contains(InstalledPackagesDir)) installDirs.Add(InstalledPackagesDir); } return true; } catch (Exception e) { logger.Error("Could not change project reference to nuget reference. Cause: {0}", e.Message); } return false; }