public virtual void Remove(CodeFile codeFile, MsBuildProject msBuildProject) { var relativeItemPath = this.GetProjectRelativePath(codeFile.Location, msBuildProject); var existingItems = msBuildProject.FindProjectItems(relativeItemPath).ToList(); foreach (var item in existingItems) { msBuildProject.RemoveItem(item); } }
public virtual void AddOrUpdate(CodeFile codeFile, MsBuildProject msBuildProject) { var relativeItemPath = this.GetProjectRelativePath(codeFile.Location, msBuildProject); var fullItemPath = this.fileSystem.Path.GetFullPath(this.fileSystem.Path.Combine(this.fileSystem.Path.GetDirectoryName(msBuildProject.FullPath), relativeItemPath)); var existingItems = msBuildProject.FindProjectItems(fullItemPath).ToList(); if (existingItems.All(i => i.ItemType != this.itemType)) { msBuildProject.AddItem(this.itemType, relativeItemPath); } this.UpdateFileContent(fullItemPath, codeFile.SourceCodeText); }