private static void Cleanup(Project project, string itemTypeToCleanup) { var items = project.Items.Where(x => x.ItemType == itemTypeToCleanup).ToList(); project.RemoveItems(items); var sortedItems = items.OrderBy(x => x.UnevaluatedInclude); foreach (var item in sortedItems) project.AddItemFast(itemTypeToCleanup, item.UnevaluatedInclude); }
public void TestRunPythonCommand() { var expectedSearchPath = string.Format("['{0}', '{1}']", TestData.GetPath(@"TestData").Replace("\\", "\\\\"), TestData.GetPath(@"TestData\HelloWorld").Replace("\\", "\\\\") ); var proj = new Project(TestData.GetPath(@"TestData\Targets\Commands4.pyproj")); foreach (var version in PythonPaths.Versions) { var verStr = version.Version.ToVersion().ToString(); proj.SetProperty("InterpreterId", version.Id.ToString("B")); proj.SetProperty("InterpreterVersion", verStr); proj.RemoveItems(proj.ItemsIgnoringCondition.Where(i => i.ItemType == "InterpreterReference").ToArray()); proj.AddItem("InterpreterReference", string.Format("{0:B}\\{1}", version.Id, verStr)); proj.Save(); proj.ReevaluateIfNecessary(); var log = new StringLogger(LoggerVerbosity.Minimal); Assert.IsTrue(proj.Build("CheckCode", new ILogger[] { new ConsoleLogger(LoggerVerbosity.Detailed), log })); Console.WriteLine(); Console.WriteLine("Output from {0:B} {1}", version.Id, version.Version.ToVersion()); foreach (var line in log.Lines) { Console.WriteLine("* {0}", line.TrimEnd('\r', '\n')); } var logLines = log.Lines.Last().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); Assert.AreEqual(2, logLines.Length); Assert.AreEqual(version.Version.ToVersion().ToString(), logLines[0].Trim()); Assert.AreEqual(expectedSearchPath, logLines[1].Trim()); } }
public void RemoveZombiedItem() { string projectOriginalContents = ObjectModelHelpers.CleanupFileContents(@" <Project ToolsVersion='msbuilddefaulttoolsversion' DefaultTargets='Build' xmlns='msbuildnamespace'> <ItemGroup> <i Include='i1' /> </ItemGroup> </Project> "); Project project = new Project(XmlReader.Create(new StringReader(projectOriginalContents))); ProjectItem item = project.GetItems("i").FirstOrDefault(); project.RemoveItems(new List<ProjectItem>() { item }); project.RemoveItems(new List<ProjectItem>() { item }); Assert.Equal(0, project.Items.Count()); }
public void RemoveItemWrongProject() { Assert.Throws<ArgumentException>(() => { ProjectRootElement root1 = ProjectRootElement.Create(); root1.AddItem("i", "i1"); ProjectRootElement root2 = ProjectRootElement.Create(); root2.AddItem("i", "i1"); Project project1 = new Project(root1); Project project2 = new Project(root2); project1.RemoveItems(project2.Items); } ); }
public void RemoveItemsOneNull() { Assert.Throws<ArgumentNullException>(() => { Project project = new Project(); project.RemoveItems(new List<ProjectItem>() { null }); } ); }
public void RemoveSeveralItemsExpandExpression() { string projectOriginalContents = ObjectModelHelpers.CleanupFileContents(@" <Project ToolsVersion='msbuilddefaulttoolsversion' DefaultTargets='Build' xmlns='msbuildnamespace'> <ItemGroup> <i Include='i1;i2' /> <j Include='@(i);j2' /> </ItemGroup> </Project> "); Project project = new Project(XmlReader.Create(new StringReader(projectOriginalContents))); project.RemoveItems(project.GetItems("j").Take(2)); Assert.Equal(3, project.Items.Count()); StringWriter writer = new StringWriter(); project.Save(writer); string projectExpectedContents = ObjectModelHelpers.CleanupFileContents(@" <Project ToolsVersion='msbuilddefaulttoolsversion' DefaultTargets='Build' xmlns='msbuildnamespace'> <ItemGroup> <i Include='i1;i2' /> <j Include='j2' /> </ItemGroup> </Project> "); Helpers.CompareProjectXml(projectExpectedContents, writer.ToString()); }
public void RemoveSeveralItemsOfVariousTypes() { string projectOriginalContents = ObjectModelHelpers.CleanupFileContents(@" <Project ToolsVersion='msbuilddefaulttoolsversion' DefaultTargets='Build' xmlns='msbuildnamespace'> <ItemGroup> <i Include='i1' /> <j Include='j1' /> <j Include='j2' /> <k Include='k1' /> </ItemGroup> </Project> "); Project project = new Project(XmlReader.Create(new StringReader(projectOriginalContents))); List<ProjectItem> list = new List<ProjectItem>() { project.GetItems("i").FirstOrDefault(), project.GetItems("j").FirstOrDefault() }; project.RemoveItems(list); Assert.Equal(2, project.Items.Count()); }
public void RemoveItemWrongProject() { ProjectRootElement root1 = ProjectRootElement.Create(); root1.AddItem("i", "i1"); ProjectRootElement root2 = ProjectRootElement.Create(); root2.AddItem("i", "i1"); Project project1 = new Project(root1); Project project2 = new Project(root2); project1.RemoveItems(project2.Items); }
public void RemoveItemsOneNull() { Project project = new Project(); project.RemoveItems(new List<ProjectItem>() { null }); }
public void RemoveSeveralItemsFirstZombiesSecond() { string projectOriginalContents = ObjectModelHelpers.CleanupFileContents(@" <Project ToolsVersion='msbuilddefaulttoolsversion' DefaultTargets='Build' xmlns='msbuildnamespace'> <ItemGroup> <i Include='i1;i2' /> </ItemGroup> </Project> "); Project project = new Project(XmlReader.Create(new StringReader(projectOriginalContents))); project.RemoveItems(project.GetItems("i")); Assert.AreEqual(0, project.Items.Count()); }
private void FixReferences(Project project, Dictionary<ProjectItem, ReferenceConfig> referencesToRemove) { foreach (var referenceConfig in referencesToRemove.Values) { _processedReferences[referenceConfig] = true; } project.RemoveItems(referencesToRemove.Keys); foreach (var referenceToRemove in referencesToRemove.Values) { project.AddItem(ProjectStrings.AssemblyReference, referenceToRemove.AssemblyReference, referenceToRemove.CreateMetaData(project.FullPath)); } }
/// <summary> /// Removes all content files from the MSBuild project. /// </summary> public void Clear() { buildProject.RemoveItems(projectItems); projectItems.Clear(); }
private static void ExcludePaths(Project proj, IReadOnlyList<string> excludedPaths) { var toRemove = proj.Items.Where(item => excludedPaths.Contains(item.UnevaluatedInclude)).ToList(); proj.RemoveItems(toRemove); }
public static void RemoveCheckingFromCsproj(Project proj) { var toRemove = proj.Items.Where(IsChecking).ToList(); proj.RemoveItems(toRemove); }