private GraphNode GetOrCreateConfigNode(IGraphContext context, IItemNode packagesConfig) { var nodeId = packagesConfig.GetId(); var fileNode = context.Graph.Nodes.Get(nodeId); if (fileNode == null) { using (var scope = new GraphTransactionScope()) { fileNode = context.Graph.Nodes.GetOrCreate( nodeId, Path.GetFileName(packagesConfig.PhysicalPath), CodeNodeCategories.ProjectItem); if (!context.OutputNodes.Contains(fileNode)) { context.OutputNodes.Add(fileNode); } scope.Complete(); } } return(fileNode); }