7 instantiations of ProjectGraphNode
Microsoft.Build (1)
Graph\GraphBuilder.cs (1)
540
var graphNode = new
ProjectGraphNode
(projectInstance);
Microsoft.Build.Engine.UnitTests (6)
Graph\ProjectGraph_Tests.cs (6)
126
Assert.Throws<InternalErrorException>(() => new
ProjectGraphNode
(null));
135
var node = new
ProjectGraphNode
(projectInstance);
136
var reference1 = new
ProjectGraphNode
(projectInstance);
139
var reference2 = new
ProjectGraphNode
(projectInstance);
182
var node = new
ProjectGraphNode
(projectInstance);
183
var reference1 = new
ProjectGraphNode
(projectInstance);
371 references to ProjectGraphNode
dotnet-watch (78)
Aspire\AspireServiceFactory.cs (1)
272
public IRuntimeProcessLauncher? TryCreate(
ProjectGraphNode
projectNode, ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions)
Browser\BrowserLauncher.cs (1)
23
ProjectGraphNode
projectNode,
Browser\BrowserRefreshServerFactory.cs (2)
43
public async ValueTask<BrowserRefreshServer?> GetOrCreateBrowserRefreshServerAsync(
ProjectGraphNode
projectNode, WebApplicationAppModel appModel, CancellationToken cancellationToken)
75
public bool TryGetRefreshServer(
ProjectGraphNode
projectNode, [NotNullWhen(true)] out BrowserRefreshServer? server)
Build\EvaluationResult.cs (2)
72
var
rootNode = projectGraph.GraphRoots.Single();
89
foreach (
var
project in projectGraph.ProjectNodesTopologicallySorted)
Build\FilePathExclusions.cs (1)
21
foreach (
var
projectNode in projectGraph.ProjectNodes)
Build\ProjectGraphUtilities.cs (36)
76
public static string GetDisplayName(this
ProjectGraphNode
projectNode)
79
public static string GetTargetFramework(this
ProjectGraphNode
projectNode)
82
public static IEnumerable<string> GetTargetFrameworks(this
ProjectGraphNode
projectNode)
85
public static Version? GetTargetFrameworkVersion(this
ProjectGraphNode
projectNode)
88
public static IEnumerable<string> GetWebAssemblyCapabilities(this
ProjectGraphNode
projectNode)
91
public static bool IsTargetFrameworkVersionOrNewer(this
ProjectGraphNode
projectNode, Version minVersion)
97
public static bool IsNetCoreApp(this
ProjectGraphNode
projectNode)
100
public static bool IsNetCoreApp(this
ProjectGraphNode
projectNode, Version minVersion)
103
public static bool IsWebApp(this
ProjectGraphNode
projectNode)
106
public static string? GetOutputDirectory(this
ProjectGraphNode
projectNode)
109
public static string GetAssemblyName(this
ProjectGraphNode
projectNode)
112
public static string? GetIntermediateOutputDirectory(this
ProjectGraphNode
projectNode)
115
public static IEnumerable<string> GetCapabilities(this
ProjectGraphNode
projectNode)
118
public static bool IsAutoRestartEnabled(this
ProjectGraphNode
projectNode)
121
public static bool AreDefaultItemsEnabled(this
ProjectGraphNode
projectNode)
124
public static IEnumerable<string> GetDefaultItemExcludes(this
ProjectGraphNode
projectNode)
127
public static IEnumerable<string> GetStringListPropertyValue(this
ProjectGraphNode
projectNode, string propertyName)
133
public static bool GetBooleanPropertyValue(this
ProjectGraphNode
projectNode, string propertyName, bool defaultValue = false)
142
public static IEnumerable<
ProjectGraphNode
> GetAncestorsAndSelf(this
ProjectGraphNode
project)
145
public static IEnumerable<
ProjectGraphNode
> GetAncestorsAndSelf(this IEnumerable<
ProjectGraphNode
> projects)
148
public static IEnumerable<
ProjectGraphNode
> GetDescendantsAndSelf(this
ProjectGraphNode
project)
151
public static IEnumerable<
ProjectGraphNode
> GetDescendantsAndSelf(this IEnumerable<
ProjectGraphNode
> projects)
154
private static IEnumerable<
ProjectGraphNode
> GetTransitiveProjects(IEnumerable<
ProjectGraphNode
> projects, Func<
ProjectGraphNode
, IEnumerable<
ProjectGraphNode
>> getEdges)
156
var visited = new HashSet<
ProjectGraphNode
>();
157
var queue = new Queue<
ProjectGraphNode
>();
158
foreach (
var
project in projects)
165
var
project = queue.Dequeue();
170
foreach (
var
referencingProject in getEdges(project))
178
public static ProjectInstanceId GetProjectInstanceId(this
ProjectGraphNode
projectNode)
Build\ProjectNodeMap.cs (6)
15
public readonly IReadOnlyDictionary<string, IReadOnlyList<
ProjectGraphNode
>> Map =
18
elementSelector: static g => (IReadOnlyList<
ProjectGraphNode
>)[.. g]);
20
public IReadOnlyList<
ProjectGraphNode
> GetProjectNodes(string projectPath)
31
public
ProjectGraphNode
? TryGetProjectNode(string projectPath, string? targetFramework)
50
ProjectGraphNode
? candidate = null;
51
foreach (
var
node in projectNodes)
HotReload\AppModels\BlazorWebAssemblyAppModel.cs (2)
15
internal sealed class BlazorWebAssemblyAppModel(DotNetWatchContext context,
ProjectGraphNode
clientProject)
18
public override
ProjectGraphNode
LaunchingProject => clientProject;
HotReload\AppModels\BlazorWebAssemblyHostedAppModel.cs (3)
17
internal sealed class BlazorWebAssemblyHostedAppModel(DotNetWatchContext context,
ProjectGraphNode
clientProject,
ProjectGraphNode
serverProject)
20
public override
ProjectGraphNode
LaunchingProject => serverProject;
HotReload\AppModels\DefaultAppModel.cs (1)
13
internal sealed class DefaultAppModel(
ProjectGraphNode
project) : HotReloadAppModel
HotReload\AppModels\HotReloadAppModel.cs (2)
17
public static string GetStartupHookPath(
ProjectGraphNode
project)
23
public static HotReloadAppModel InferFromProject(DotNetWatchContext context,
ProjectGraphNode
projectNode)
HotReload\AppModels\WebApplicationAppModel.cs (4)
24
public abstract
ProjectGraphNode
LaunchingProject { get; }
40
protected WebAssemblyHotReloadClient CreateWebAssemblyClient(ILogger clientLogger, ILogger agentLogger, BrowserRefreshServer browserRefreshServer,
ProjectGraphNode
clientProject)
51
public BrowserRefreshServer? TryCreateRefreshServer(
ProjectGraphNode
projectNode)
70
public bool IsServerSupported(
ProjectGraphNode
projectNode, ILogger logger)
HotReload\AppModels\WebServerAppModel.cs (2)
10
internal sealed class WebServerAppModel(DotNetWatchContext context,
ProjectGraphNode
serverProject)
13
public override
ProjectGraphNode
LaunchingProject => serverProject;
HotReload\CompilationHandler.cs (3)
95
ProjectGraphNode
projectNode,
502
foreach (
var
containingProjectNode in containingProjectNodes)
504
foreach (
var
referencingProjectNode in containingProjectNode.GetAncestorsAndSelf())
HotReload\HotReloadDotNetWatcher.cs (2)
97
var
rootProject = evaluationResult.ProjectGraph.GraphRoots.Single();
576
foreach (
var
node in graph.ProjectNodes)
HotReload\ScopedCssFileHandler.cs (2)
16
var projectsToRefresh = new HashSet<
ProjectGraphNode
>();
41
foreach (
var
projectNode in projectNodes)
HotReload\StaticFileHandler.cs (2)
16
var projectsWithoutRefreshServer = new HashSet<
ProjectGraphNode
>();
39
foreach (
var
projectNode in projectNodes)
Process\IRuntimeProcessLauncherFactory.cs (1)
15
public IRuntimeProcessLauncher? TryCreate(
ProjectGraphNode
projectNode, ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions);
Process\ProjectLauncher.cs (1)
36
var
projectNode = projectMap.TryGetProjectNode(projectOptions.ProjectPath, projectOptions.TargetFramework);
Process\RunningProject.cs (2)
14
ProjectGraphNode
projectNode,
25
public readonly
ProjectGraphNode
ProjectNode = projectNode;
Process\WebServerProcessStateObserver.cs (1)
24
public static void Observe(
ProjectGraphNode
serverProject, ProcessSpec serverProcessSpec, Action<string> onServerListening)
Watch\DotNetWatcher.cs (1)
38
ProjectGraphNode
? projectRootNode;
dotnet-watch.Tests (1)
TestUtilities\TestRuntimeProcessLauncher.cs (1)
12
public IRuntimeProcessLauncher TryCreate(
ProjectGraphNode
projectNode, ProjectLauncher projectLauncher, ProjectOptions hostProjectOptions)
Microsoft.Build (118)
BackEnd\BuildManager\BuildManager.cs (14)
2019
Dictionary<
ProjectGraphNode
, BuildResult>? resultsPerNode = null;
2025
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetsPerNode = projectGraph.GetTargetLists(submission.BuildRequestData.TargetNames);
2032
foreach (
ProjectGraphNode
entryPointNode in projectGraph.EntryPointNodes)
2052
new ReadOnlyDictionary<
ProjectGraphNode
, BuildResult>(resultsPerNode ?? new Dictionary<
ProjectGraphNode
, BuildResult>())));
2054
static void DumpGraph(ProjectGraph graph, IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>>? targetList = null)
2067
private Dictionary<
ProjectGraphNode
, BuildResult> BuildGraph(
2069
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetsPerNode,
2080
var blockedNodes = new HashSet<
ProjectGraphNode
>(projectGraph.ProjectNodes);
2081
var finishedNodes = new HashSet<
ProjectGraphNode
>(projectGraph.ProjectNodes.Count);
2082
var buildingNodes = new Dictionary<BuildSubmissionBase,
ProjectGraphNode
>();
2083
var resultsPerNode = new Dictionary<
ProjectGraphNode
, BuildResult>(projectGraph.ProjectNodes.Count);
2102
foreach (
var
node in unblockedNodes)
2139
ProjectGraphNode
finishedNode = buildingNodes[finishedBuildSubmission];
Graph\GraphBuilder.cs (47)
33
public IReadOnlyCollection<
ProjectGraphNode
> ProjectNodes { get; private set; }
35
public IReadOnlyCollection<
ProjectGraphNode
> RootNodes { get; private set; }
37
public IReadOnlyCollection<
ProjectGraphNode
> EntryPointNodes { get; private set; }
103
private static IReadOnlyCollection<
ProjectGraphNode
> GetGraphRoots(IReadOnlyCollection<
ProjectGraphNode
> entryPointNodes)
105
var graphRoots = new List<
ProjectGraphNode
>(entryPointNodes.Count);
107
foreach (
var
entryPointNode in entryPointNodes)
136
Dictionary<
ProjectGraphNode
, HashSet<
ProjectGraphNode
>> transitiveReferenceCache = new(allParsedProjects.Count);
140
var
currentNode = parsedProject.Value.GraphNode;
155
foreach (
var
transitiveProjectReference in GetTransitiveProjectReferencesExcludingSelf(allParsedProjects[referenceInfo.ReferenceConfiguration]))
171
HashSet<
ProjectGraphNode
> GetTransitiveProjectReferencesExcludingSelf(ParsedProject parsedProject)
173
if (transitiveReferenceCache.TryGetValue(parsedProject.GraphNode, out HashSet<
ProjectGraphNode
> transitiveReferences))
190
foreach (
ProjectGraphNode
transitiveReference in GetTransitiveProjectReferencesExcludingSelf(reference))
202
var projectsByPath = new Dictionary<string, List<
ProjectGraphNode
>>();
208
if (projectsByPath.TryGetValue(projectPath, out List<
ProjectGraphNode
> value))
214
projectsByPath[projectPath] = new List<
ProjectGraphNode
> { project.Value.GraphNode };
227
ErrorUtilities.VerifyThrow(projectsByPath.TryGetValue(referencedProjectPath, out List<
ProjectGraphNode
> projectToReturn), "nodes should include solution projects");
231
foreach (
var
referencingNode in referencingNodes)
233
foreach (
var
referencedNode in referencedNodes)
440
IReadOnlyCollection<
ProjectGraphNode
> entryPointNodes,
444
var nodeStates = new Dictionary<
ProjectGraphNode
, NodeVisitationState>();
446
foreach (
var
entryPointNode in entryPointNodes)
463
ProjectGraphNode
node,
464
IDictionary<
ProjectGraphNode
, NodeVisitationState> nodeState)
468
foreach (
var
referenceNode in node.ProjectReferences)
540
var
graphNode = new ProjectGraphNode(projectInstance);
573
private List<ProjectInterpretation.ReferenceInfo> ParseReferences(
ProjectGraphNode
parsedProject)
647
private ConcurrentDictionary<(
ProjectGraphNode
,
ProjectGraphNode
), ProjectItemInstance> ReferenceItems =
648
new ConcurrentDictionary<(
ProjectGraphNode
,
ProjectGraphNode
), ProjectItemInstance>();
652
public ProjectItemInstance this[(
ProjectGraphNode
node,
ProjectGraphNode
reference) key]
661
public void AddOrUpdateEdge((
ProjectGraphNode
node,
ProjectGraphNode
reference) key, ProjectItemInstance edge)
666
addValueFactory: static ((
ProjectGraphNode
node,
ProjectGraphNode
reference) key, ProjectItemInstance referenceItem) => referenceItem,
667
updateValueFactory: static ((
ProjectGraphNode
node,
ProjectGraphNode
reference) key, ProjectItemInstance existingItem, ProjectItemInstance newItem) =>
686
static string GetEffectiveTargets(
ProjectGraphNode
reference, string targetsMetadata)
699
public void RemoveEdge((
ProjectGraphNode
node,
ProjectGraphNode
reference) key)
704
internal bool HasEdge((
ProjectGraphNode
node,
ProjectGraphNode
reference) key) => ReferenceItems.ContainsKey(key);
726
public
ProjectGraphNode
GraphNode { get; }
729
public ParsedProject(ConfigurationMetadata configurationMetadata,
ProjectGraphNode
graphNode, List<ProjectInterpretation.ReferenceInfo> referenceInfos)
Graph\GraphBuildRequestData.cs (2)
200
foreach (
ProjectGraphNode
entryPoint in ProjectGraph.EntryPointNodes)
219
ProjectGraphNode
? node = ProjectGraph?.EntryPointNodes.FirstOrDefault();
Graph\GraphBuildResult.cs (5)
19
internal GraphBuildResult(int submissionId, IReadOnlyDictionary<
ProjectGraphNode
, BuildResult> resultsByNode)
34
ResultsByNode = ImmutableDictionary<
ProjectGraphNode
, BuildResult>.Empty;
64
foreach (KeyValuePair<
ProjectGraphNode
, BuildResult> result in ResultsByNode)
79
public IReadOnlyDictionary<
ProjectGraphNode
, BuildResult> ResultsByNode { get; }
87
public BuildResult this[
ProjectGraphNode
node] => ResultsByNode[node];
Graph\ProjectGraph.cs (35)
60
private readonly Lazy<IReadOnlyCollection<
ProjectGraphNode
>> _projectNodesTopologicallySorted;
92
public IReadOnlyCollection<
ProjectGraphNode
> EntryPointNodes { get; }
97
public IReadOnlyCollection<
ProjectGraphNode
> ProjectNodes { get; }
103
public IReadOnlyCollection<
ProjectGraphNode
> ProjectNodesTopologicallySorted => _projectNodesTopologicallySorted.Value;
105
public IReadOnlyCollection<
ProjectGraphNode
> GraphRoots { get; }
449
_projectNodesTopologicallySorted = new Lazy<IReadOnlyCollection<
ProjectGraphNode
>>(() => TopologicalSort(GraphRoots, ProjectNodes));
491
internal string ToDot(IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetsPerNode = null)
498
Func<
ProjectGraphNode
, string> nodeIdProvider,
499
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetsPerNode = null)
503
var nodeIds = new ConcurrentDictionary<
ProjectGraphNode
, string>();
513
foreach (
var
node in ProjectNodes)
528
foreach (
var
reference in node.ProjectReferences)
540
string GetNodeId(
ProjectGraphNode
node)
545
string GetTargetListString(
ProjectGraphNode
node)
559
private static IReadOnlyCollection<
ProjectGraphNode
> TopologicalSort(
560
IReadOnlyCollection<
ProjectGraphNode
> graphRoots,
561
IReadOnlyCollection<
ProjectGraphNode
> graphNodes)
563
var toposort = new List<
ProjectGraphNode
>(graphNodes.Count);
564
var partialRoots = new Queue<
ProjectGraphNode
>(graphNodes.Count);
567
foreach (
var
root in graphRoots)
574
var
partialRoot = partialRoots.Dequeue();
578
foreach (
var
reference in partialRoot.ProjectReferences)
609
public IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> GetTargetLists(ICollection<string> entryProjectTargets)
622
foreach (
ProjectGraphNode
entryPointNode in EntryPointNodes)
637
foreach (
ProjectGraphNode
entryPointNode in EntryPointNodes)
665
ProjectGraphNode
node = GetNodeForProject(project);
683
ProjectGraphNode
node = GetNodeForProject(project);
691
ProjectGraphNode
GetNodeForProject(ProjectInSolution project) => EntryPointNodes.First(node => string.Equals(node.ProjectInstance.FullPath, project.AbsolutePath));
697
foreach (
ProjectGraphNode
entryPointNode in EntryPointNodes)
711
var
node = buildRequest.Node;
726
foreach (
var
referenceNode in node.ProjectReferences)
752
var entriesToUpdate = new List<KeyValuePair<
ProjectGraphNode
, ImmutableList<string>>>();
774
entriesToUpdate.Add(new KeyValuePair<
ProjectGraphNode
, ImmutableList<string>>(pair.Key, targetList));
866
public ProjectGraphBuildRequest(
ProjectGraphNode
node, ImmutableList<string> targets)
872
public
ProjectGraphNode
Node { get; }
Graph\ProjectGraphNode.cs (9)
21
private readonly HashSet<
ProjectGraphNode
> _projectReferences = new HashSet<
ProjectGraphNode
>();
22
private readonly HashSet<
ProjectGraphNode
> _referencingProjects = new HashSet<
ProjectGraphNode
>();
38
public IReadOnlyCollection<
ProjectGraphNode
> ProjectReferences => _projectReferences;
43
public IReadOnlyCollection<
ProjectGraphNode
> ReferencingProjects => _referencingProjects;
58
internal void AddProjectReference(
ProjectGraphNode
reference, ProjectItemInstance projectReferenceItem, GraphBuilder.GraphEdges edges)
66
internal void RemoveReference(
ProjectGraphNode
reference, GraphBuilder.GraphEdges edges)
76
foreach (
var
reference in _projectReferences)
Graph\ProjectInterpretation.cs (6)
77
public IEnumerable<ReferenceInfo> GetReferences(
ProjectGraphNode
projectGraphNode, ProjectCollection projectCollection, ProjectGraph.ProjectInstanceFactoryFunc projectInstanceFactory)
250
ProjectGraphNode
outerBuild = node.Value.GraphNode;
254
foreach (
ProjectGraphNode
innerBuild in outerBuild.ProjectReferences)
256
foreach (
ProjectGraphNode
outerBuildReferencingProject in outerBuild.ReferencingProjects)
525
public ImmutableList<string> GetApplicableTargetsForReference(
ProjectGraphNode
projectGraphNode)
546
public bool RequiresTransitiveProjectReferences(
ProjectGraphNode
projectGraphNode)
Microsoft.Build.Engine.UnitTests (174)
BackEnd\BuildManager_Tests.cs (4)
4210
var
node1 = graph.ProjectNodes.First(node => node.ProjectInstance.FullPath.Equals(project1, StringComparison.OrdinalIgnoreCase));
4214
var
node2 = graph.ProjectNodes.First(node => node.ProjectInstance.FullPath.Equals(project2, StringComparison.OrdinalIgnoreCase));
4295
var
node1 = graph.ProjectNodes.First(node => node.ProjectInstance.FullPath.Equals(project1, StringComparison.OrdinalIgnoreCase));
4299
var
node2 = graph.ProjectNodes.First(node => node.ProjectInstance.FullPath.Equals(project2, StringComparison.OrdinalIgnoreCase));
Graph\GraphLoadedFromSolution_tests.cs (7)
624
var
node1 = GetFirstNodeWithProjectNumber(graph, 1);
629
var
outerBuild3 = GetOuterBuild(graph, 3);
638
IEnumerable<ProjectItemInstance> GetOutgoingEdgeItemsFromNode(
ProjectGraphNode
node, IReadOnlyDictionary<(ConfigurationMetadata, ConfigurationMetadata), ProjectItemInstance> edgeInfos)
643
IEnumerable<ProjectItemInstance> GetIncomingEdgeItemsToNode(
ProjectGraphNode
node, IReadOnlyDictionary<(ConfigurationMetadata, ConfigurationMetadata), ProjectItemInstance> edgeInfos)
707
foreach (
var
node in graphFromSolution.ProjectNodes)
715
private static string GetConfiguration(
ProjectGraphNode
node)
720
private static string GetPlatform(
ProjectGraphNode
node)
Graph\GraphTestingUtilities.cs (25)
41
ProjectGraphNode
outerBuild,
53
foreach (
ProjectGraphNode
innerBuild in outerBuild.ProjectReferences)
65
foreach (
ProjectGraphNode
outerBuildReferencer in outerBuild.ReferencingProjects)
67
ProjectGraphNode
[] innerBuilds = outerBuildReferencer.ProjectReferences
73
foreach (
ProjectGraphNode
innerBuild in innerBuilds)
90
public static void AssertNonMultitargetingNode(
ProjectGraphNode
node, Dictionary<string, string> additionalGlobalProperties = null)
99
public static void AssertOuterBuildEvaluation(
ProjectGraphNode
outerBuild, Dictionary<string, string> additionalGlobalProperties)
110
ProjectGraphNode
innerBuild,
131
internal static
ProjectGraphNode
GetFirstNodeWithProjectNumber(ProjectGraph graph, int projectNum)
136
internal static IEnumerable<
ProjectGraphNode
> GetNodesWithProjectNumber(ProjectGraph graph, int projectNum)
141
internal static
ProjectGraphNode
GetOuterBuild(ProjectGraph graph, int projectNumber)
146
internal static IReadOnlyCollection<
ProjectGraphNode
> GetInnerBuilds(ProjectGraph graph, int projectNumber)
148
var
outerBuild = GetOuterBuild(graph, projectNumber);
152
return ImmutableArray<
ProjectGraphNode
>.Empty;
166
internal static string GetProjectFileName(
ProjectGraphNode
node)
178
internal static int GetProjectNumber(
ProjectGraphNode
node)
190
internal static string GetProjectPath(
ProjectGraphNode
node)
214
internal static IEnumerable<
ProjectGraphNode
> ComputeClosure(
ProjectGraphNode
node)
218
IEnumerable<
ProjectGraphNode
> ComputeClosureRecursive(
ProjectGraphNode
projectGraphNode)
220
foreach (
var
reference in projectGraphNode.ProjectReferences)
224
foreach (
var
closureReference in ComputeClosureRecursive(reference))
236
var
node = GetFirstNodeWithProjectNumber(graph, kvp.Key);
241
internal static void AssertReferencesIgnoringOrder(this
ProjectGraphNode
node, int[] expectedReferences)
Graph\IsolateProjects_Tests.cs (3)
15
using ExpectedNodeBuildOutput = System.Collections.Generic.Dictionary<Microsoft.Build.Graph.
ProjectGraphNode
, string[]>;
16
using OutputCacheDictionary = System.Collections.Generic.Dictionary<Microsoft.Build.Graph.
ProjectGraphNode
, string>;
327
ProjectGraphNode
[] topoSortedProjectGraphNodes = projectGraph.ProjectNodesTopologicallySorted.ToArray();
Graph\ProjectGraph_Tests.cs (108)
135
var
node = new ProjectGraphNode(projectInstance);
136
var
reference1 = new ProjectGraphNode(projectInstance);
139
var
reference2 = new ProjectGraphNode(projectInstance);
182
var
node = new ProjectGraphNode(projectInstance);
183
var
reference1 = new ProjectGraphNode(projectInstance);
262
ProjectGraphNode
node1 = GetFirstNodeWithProjectNumber(graph, 1);
263
ProjectGraphNode
node2 = GetFirstNodeWithProjectNumber(graph, 2);
264
ProjectGraphNode
node3 = GetFirstNodeWithProjectNumber(graph, 3);
265
ProjectGraphNode
node4 = GetFirstNodeWithProjectNumber(graph, 4);
266
ProjectGraphNode
node5 = GetFirstNodeWithProjectNumber(graph, 5);
267
ProjectGraphNode
node6 = GetFirstNodeWithProjectNumber(graph, 6);
268
ProjectGraphNode
node7 = GetFirstNodeWithProjectNumber(graph, 7);
369
var
root1 = GetFirstNodeWithProjectNumber(graph, 1);
376
var
root2 = GetFirstNodeWithProjectNumber(graph, 2);
466
var
node4A = GetFirstNodeWithProjectNumber(graph, 2).ProjectReferences.First();
467
var
node4B = GetFirstNodeWithProjectNumber(graph, 3).ProjectReferences.First();
581
var
node1 = GetFirstNodeWithProjectNumber(projectGraph, 1);
582
var
node2 = GetFirstNodeWithProjectNumber(projectGraph, 2);
583
var
node3 = GetFirstNodeWithProjectNumber(projectGraph, 3);
606
var
entryPointNode1 = projectGraph.EntryPointNodes.First();
607
var
entryPointNode2 = projectGraph.EntryPointNodes.Last();
645
var
entryPointNode1 = projectGraph.EntryPointNodes.First();
646
var
entryPointNode2 = projectGraph.EntryPointNodes.Last();
868
ProjectGraphNode
project1Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project1Path);
874
ProjectGraphNode
project2Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project2Path);
880
ProjectGraphNode
project3Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project3Path);
887
ProjectGraphNode
project4Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project4Path);
893
ProjectGraphNode
project5Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project5Path);
899
ProjectGraphNode
project6Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project6Path);
907
ProjectGraphNode
project8Node = projectGraph.ProjectNodes.Single(node => node.ProjectInstance.FullPath == project8Path);
927
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new[] { "A" });
955
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new[] { "A" });
986
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new[] { "A" });
1008
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(null);
1026
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new[] { "Foo" });
1049
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(null);
1072
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new[] { "A" });
1115
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new List<string> { "A" });
1156
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new List<string> { "A" });
1190
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new List<string> { "A" });
1193
var
root = GetFirstNodeWithProjectNumber(projectGraph, 1);
1195
var
outerBuild = GetOuterBuild(projectGraph, 2);
1201
foreach (
var
innerBuild in innerBuilds)
1255
ProjectGraphNode
rootOuterBuild = GetOuterBuild(graph, 1);
1256
ProjectGraphNode
nonRootOuterBuild = GetOuterBuild(graph, 3);
1261
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(new[] { "A" });
1265
foreach (
ProjectGraphNode
innerBuild in GetInnerBuilds(graph, 1))
1274
foreach (
ProjectGraphNode
innerBuild in GetInnerBuilds(graph, 3))
1362
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(new List<string> { "A" });
1375
void AssertMultitargetingNode(int projectNumber, ProjectGraph projectGraph, IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists, string[] outerBuildTargets, string[] nonOuterBuildTargets)
1379
foreach (
var
innerBuild in GetInnerBuilds(projectGraph, projectNumber))
1397
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(null);
1420
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(null);
1450
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(null);
1507
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(entryProjectTargets: null);
1552
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(entryProjectTargets: new[] { "Build" });
1559
expectedNodeBuildOutput: new Dictionary<
ProjectGraphNode
, string[]>(),
1560
outputCaches: new Dictionary<
ProjectGraphNode
, string>(),
1602
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(entryProjectTargets: new[] { "Build" });
1609
expectedNodeBuildOutput: new Dictionary<
ProjectGraphNode
, string[]>(),
1610
outputCaches: new Dictionary<
ProjectGraphNode
, string>(),
1633
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(null);
1847
Func<
ProjectGraphNode
, string> nodeIdProvider = GetProjectFileName;
1853
foreach (
var
node in graph.ProjectNodes)
1865
foreach (
var
reference in node.ProjectReferences)
1890
var
outerBuild = graph.GraphRoots.First();
1917
var
outerBuild = GetOuterBuild(graph, 2);
1951
var
outerBuild = GetOuterBuild(graph, 2);
1955
var
outerBuildReferencingNode = GetFirstNodeWithProjectNumber(graph, 1);
1959
foreach (
var
innerBuild in GetInnerBuilds(graph, 2))
1984
var
rootOuterBuild = GetOuterBuild(graph, 1);
1985
var
nonRootOuterBuild = GetOuterBuild(graph, 2);
2005
var
nonMultitargetingNode = GetFirstNodeWithProjectNumber(graph, 2);
2033
var
nonMultitargetingNode = GetFirstNodeWithProjectNumber(graph, 2);
2052
var
nonMultitargetingNode = GetFirstNodeWithProjectNumber(graph, 2);
2105
var
innerBuildWithCommonReferences = GetNodesWithProjectNumber(graph, 1).First(n => n.ProjectInstance.GlobalProperties.TryGetValue(InnerBuildPropertyName, out string p) && p == "a");
2111
var
innerBuildWithAdditionalReferences = GetNodesWithProjectNumber(graph, 1).First(n => n.ProjectInstance.GlobalProperties.TryGetValue(InnerBuildPropertyName, out string p) && p == "b");
2138
var
outerBuild = graph.GraphRoots.First(i => i.ProjectType == ProjectInterpretation.ProjectType.OuterBuild);
2143
var
referencedInnerBuild = GetNodesWithProjectNumber(graph, 1).First(n => n.ProjectInstance.GetPropertyValue(InnerBuildPropertyName) == "a");
2145
var
two = GetFirstNodeWithProjectNumber(graph, 2);
2172
var
rootNode = graph.GraphRoots.First();
2176
var
innerBuildNode = rootNode.ProjectReferences.First();
2216
var
outerBuild1 = GetOuterBuild(graph, 1);
2220
var
innerBuild1WithReferenceToInnerBuild2 = outerBuild1.ProjectReferences.FirstOrDefault(n => n.ProjectType == ProjectInterpretation.ProjectType.InnerBuild && n.ProjectInstance.GlobalProperties[InnerBuildPropertyName] == "a");
2223
var
outerBuild2 = GetOuterBuild(graph, 2);
2226
var
innerBuild2 = GetInnerBuilds(graph, 2).FirstOrDefault();
2334
foreach (
var
node in projectGraph.ProjectNodes)
2364
foreach (
var
node in graph.ProjectNodes)
2540
foreach (
var
innerBuild in innerBuilds1)
2552
foreach (
var
innerBuild in innerBuilds4)
2619
var
outerBuild1 = GetOuterBuild(graph, 1);
2627
foreach (
var
inner1 in innerBuildsFor1)
2633
var
outerBuild2 = GetOuterBuild(graph, 2);
2640
foreach (
var
inner2 in innerBuildsFor2)
2645
var
outerBuild3 = GetOuterBuild(graph, 3);
2654
foreach (
var
inner3 in innerBuildsFor3)
2696
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(Array.Empty<string>());
2698
ProjectGraphNode
project1 = GetFirstNodeWithProjectNumber(graph, 1);
2699
ProjectGraphNode
project2 = GetFirstNodeWithProjectNumber(graph, 2);
2738
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(Array.Empty<string>());
2740
ProjectGraphNode
project1 = GetFirstNodeWithProjectNumber(graph, 1);
2741
ProjectGraphNode
project2 = GetFirstNodeWithProjectNumber(graph, 2);
2797
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = graph.GetTargetLists(Array.Empty<string>());
2800
foreach (
ProjectGraphNode
inner in GetInnerBuilds(graph, 1))
2806
foreach (
ProjectGraphNode
inner in GetInnerBuilds(graph, 2))
2874
ProjectGraphNode
project1Node = GetFirstNodeWithProjectNumber(projectGraph, 1);
2875
ProjectGraphNode
project2Node = GetFirstNodeWithProjectNumber(projectGraph, 2);
2877
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetLists = projectGraph.GetTargetLists(entryTargets);
Graph\ResultCacheBasedBuilds_Tests.cs (10)
20
using ExpectedNodeBuildOutput = System.Collections.Generic.Dictionary<Microsoft.Build.Graph.
ProjectGraphNode
, string[]>;
21
using OutputCacheDictionary = System.Collections.Generic.Dictionary<Microsoft.Build.Graph.
ProjectGraphNode
, string>;
306
foreach (
var
node in topoSortedNodes)
349
var
rootNode = topoSortedNodes.First(n => Path.GetFileNameWithoutExtension(n.ProjectInstance.FullPath) == "1");
424
IReadOnlyCollection<
ProjectGraphNode
> topoSortedNodes,
430
Func<
ProjectGraphNode
, ExpectedNodeBuildOutput, string[]> expectedOutputProducer = null,
431
IReadOnlyDictionary<
ProjectGraphNode
, ImmutableList<string>> targetListsPerNode = null,
444
foreach (
var
node in topoSortedNodes)
491
string[] ExpectedBuildOutputForNode(
ProjectGraphNode
node)
509
private static string ProjectNumber(
ProjectGraphNode
node) => Path.GetFileNameWithoutExtension(node.ProjectInstance.FullPath);
ProjectCache\ProjectCacheTests.cs (16)
164
public CacheResult GetExpectedCacheResultForNode(
ProjectGraphNode
node)
341
public CacheResult GetCacheResultForNode(
ProjectGraphNode
node)
514
var nodesToBuildResults = new Dictionary<
ProjectGraphNode
, BuildResult>();
519
foreach (
var
node in graph.ProjectNodesTopologicallySorted)
537
(MockLogger logger, ProjectGraph graph, Dictionary<
ProjectGraphNode
, BuildResult> nodesToBuildResults) = BuildGraphVsScenario(testData, buildParameters);
561
private (MockLogger logger, ProjectGraph projectGraph, Dictionary<
ProjectGraphNode
, BuildResult> nodesToBuildResults) BuildGraphVsScenario(
566
var nodesToBuildResults = new Dictionary<
ProjectGraphNode
, BuildResult>();
601
foreach (
var
node in graph.ProjectNodesTopologicallySorted)
623
foreach (
var
node in graph.ProjectNodes)
647
private static string CreateSolutionConfigurationProperty(IReadOnlyCollection<
ProjectGraphNode
> projectNodes)
653
foreach (
var
node in projectNodes)
703
var
rootNode = graph.GraphRoots.First();
795
IReadOnlyDictionary<
ProjectGraphNode
, BuildResult> projectPathToBuildResults,
811
foreach (
var
node in graph.ProjectNodes)
851
private static int GetProjectNumber(
ProjectGraphNode
node) => GetProjectNumber(node.ProjectInstance.FullPath);
1499
foreach (
var
node in graph.ProjectNodes.Where(n => referenceNumbers.Contains(GetProjectNumber(n))))
SolutionFileBuilder.cs (1)
95
n => GraphTestingUtilities.GetProjectNumber((
ProjectGraphNode
)n).ToString(),