private void UpdateReferenceVersions(ProjectDocument project) { Console.Write("Updating reference versions... "); foreach (var reference in project.GetBinaryReferences()) { // skip assemblies from GAC if (reference.IsGlobal) continue; // skip remote packages if (!m_checker.IsLocal(reference.Name)) continue; // skip static packages if (m_checker.IsStatic(reference.Name)) continue; // package should be pinned to its current version if (m_checker.IsPinnedToCurrentVersion(reference.Name)) continue; // get version to use for local package var versionToUse = m_checker.VersionToUse(reference.Name); // update is not required if (versionToUse.Normalize() == reference.Version.Normalize()) continue; // update package version within project file reference.UpdateVersion(versionToUse); } Console.WriteLine("OK"); }
private void ConvertProjectReferences(ProjectDocument project) { if (Path.GetExtension(Args.ProjectFile) == ".sfproj") return; Console.Write("Resolving project references... "); foreach (var reference in project.GetProjectReferences()) { string name = null; foreach (var check in Util.LocalNameToProjectNames(reference.Name)) { if (m_log.ContainsKey(check)) { name = check; break; } } if (name == null) { throw new InvalidOperationException( $@"Referenced project '{reference.Name}' was not found in 'packages.config'. Please add it as a NuGet reference first, and only after that you can convert it into project reference."); } m_log[name].ProjectReference = true; var framework = m_checker.TargetFramework(name); reference.ConvertToBinary(framework, name); } Console.WriteLine("OK"); }
private ProjectDocument GetProjectDocument() { Console.WriteLine("Loading project..."); var project = new ProjectDocument(Paths.ProjectFile); return project; }
public void Adjust() { Console.Write("Loading project... "); var project = new ProjectDocument(Args.ProjectFile); Console.WriteLine("OK"); ConvertProjectReferences(project); UpdateReferenceVersions(project); SetupRelatedProjects(project); Console.Write("Saving project... "); project.Save(); Console.WriteLine("OK"); }
private static void SetupRelatedProjects() { string path; switch (Args.ProjectType) { case ProjectType.CloudService: path = Paths.CloudProjectFile; break; case ProjectType.FabricApplication: path = Paths.FabricProjectFile; break; default: return; } if (String.IsNullOrEmpty(Args.RelatedPath)) throw new InvalidOperationException("Configuration argument 'RelatedPath' is not set."); if (String.IsNullOrEmpty(Args.ReferencesPath)) throw new InvalidOperationException("Configuration argument 'ReferencesPath' is not set."); Args.RelatedPath.CreateDirectoryIfNotExists(); Args.ReferencesPath.CreateDirectoryIfNotExists(); Console.Write("Converting paths for related projects... "); var project = new ProjectDocument(path); var references = project.GetProjectReferences(); if (references.Count == 0) throw new InvalidOperationException("It is strange that cloud service or fabric application does not have any referenced projects."); var log = new LogPackages(); foreach (var reference in references) { SetupRelatedProject(reference, log); } project.Save(); Console.WriteLine("OK"); log.Report(); Console.Write("Saving local references... "); log.SaveReferences(Args.ReferencesPath); Console.WriteLine("OK"); Console.Write("Saving packages summary... "); log.SaveSummary(Args.TempPath); Console.WriteLine("OK"); }
public override void CheckPage(TfsClient client) { base.CheckPage(client); var path = TfsPath; if (!CheckTfsPathArea(path, AreaName)) throw new InvalidOperationException($"TFS path '{path}' seems not conforming with area name '{AreaName}'."); if (!CheckTfsPathProject(path, ProjectName)) throw new InvalidOperationException($"TFS path '{path}' seems not conforming with project name '{ProjectName}'."); var project = new ProjectDocument(() => client.ReadFile(ProjectFile)); ProjectUid = project.GetProjectGuid(); }
private void SetupRelatedProjects(ProjectDocument project) { if (Path.GetExtension(Args.ProjectFile) != ".sfproj") return; Console.WriteLine("Converting paths for related projects..."); if (String.IsNullOrEmpty(Args.RelatedPath)) throw new InvalidOperationException("Related path is not set."); var references = project.GetProjectReferences(); if (references.Count == 0) throw new InvalidOperationException("Cannot find any related projects from a project file."); foreach (var reference in references) { SetupRelatedProject(reference); } Console.WriteLine("OK"); }