public void RemoveDocument(string filePath) { var relativePath = FilePathUtilities.GetRelativePath(_loadedProject.DirectoryPath, filePath); var items = _loadedProject.GetItems("Compile"); var item = items.FirstOrDefault(it => FilePathUtilities.PathsEqual(it.EvaluatedInclude, relativePath) || FilePathUtilities.PathsEqual(it.EvaluatedInclude, filePath)); if (item != null) { _loadedProject.RemoveItem(item); } }
private MSB.Evaluation.ProjectItem FindReferenceItem(AssemblyIdentity identity, string filePath) { var references = _loadedProject.GetItems("Reference"); MSB.Evaluation.ProjectItem item = null; var fileName = Path.GetFileNameWithoutExtension(filePath); if (identity != null) { var shortAssemblyName = identity.Name; var fullAssemblyName = identity.GetDisplayName(); // check for short name match item = references.FirstOrDefault(it => string.Compare(it.EvaluatedInclude, shortAssemblyName, StringComparison.OrdinalIgnoreCase) == 0); // check for full name match if (item == null) { item = references.FirstOrDefault(it => string.Compare(it.EvaluatedInclude, fullAssemblyName, StringComparison.OrdinalIgnoreCase) == 0); } } // check for file path match if (item == null) { string relativePath = FilePathUtilities.GetRelativePath(_loadedProject.DirectoryPath, filePath); item = references.FirstOrDefault(it => FilePathUtilities.PathsEqual(it.EvaluatedInclude, filePath) || FilePathUtilities.PathsEqual(it.EvaluatedInclude, relativePath) || FilePathUtilities.PathsEqual(GetHintPath(it), filePath) || FilePathUtilities.PathsEqual(GetHintPath(it), relativePath)); } // check for partial name match if (item == null && identity != null) { var partialName = identity.Name + ","; var items = references.Where(it => it.EvaluatedInclude.StartsWith(partialName, StringComparison.OrdinalIgnoreCase)).ToList(); if (items.Count == 1) { item = items[0]; } } return(item); }
public void RemoveAnalyzerReference(AnalyzerReference reference) { var fileRef = reference as AnalyzerFileReference; if (fileRef != null) { string relativePath = FilePathUtilities.GetRelativePath(_loadedProject.DirectoryPath, fileRef.FullPath); var analyzers = _loadedProject.GetItems("Analyzer"); var item = analyzers.FirstOrDefault(it => FilePathUtilities.PathsEqual(it.EvaluatedInclude, relativePath) || FilePathUtilities.PathsEqual(it.EvaluatedInclude, fileRef.FullPath)); if (item != null) { _loadedProject.RemoveItem(item); } } }
private MSB.Evaluation.ProjectItem FindProjectReferenceItem(string projectName, string projectFilePath) { var references = _loadedProject.GetItems("ProjectReference"); string relativePath = FilePathUtilities.GetRelativePath(_loadedProject.DirectoryPath, projectFilePath); MSB.Evaluation.ProjectItem item = null; // find by project file path item = references.First(it => FilePathUtilities.PathsEqual(it.EvaluatedInclude, relativePath) || FilePathUtilities.PathsEqual(it.EvaluatedInclude, projectFilePath)); // try to find by project name if (item == null) { item = references.First(it => string.Compare(projectName, it.GetMetadataValue("Name"), StringComparison.OrdinalIgnoreCase) == 0); } return(item); }