Exemplo n.º 1
0
		public static bool PackageExists(INugetSpec nuget, string packagesOutputDirectory)
		{
			return File.Exists(packagesOutputDirectory.Combine(nuget.OutputPackageFilename));
		}
Exemplo n.º 2
0
		public override void ReplaceProjectByNuget(INugetSpec package, string assemblyName, string framework)
		{
			// TODO
		}
Exemplo n.º 3
0
		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);
			}
		}
Exemplo n.º 4
0
		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);
			}
		}
Exemplo n.º 5
0
		public virtual bool AddNuget(ILogger logger, INugetSpec nugetComponent, IComponentFinder components, string packagesOutputDirectory)
		{
			DoAddNuget(logger, nugetComponent, components, packagesOutputDirectory, true);
			return true;
		}
Exemplo n.º 6
0
		public virtual void ReplaceProjectByNuget(INugetSpec package, string assemblyName, string framework)
		{
			FullPath.TransformFile(xml => ReplaceProjectByNuget(xml, package.Name, assemblyName, framework, InstalledPackagesDir));
		}
Exemplo n.º 7
0
		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;
		}