Skip to content

SubmissionId not passed to evaluation of .sln.metaproj #9469

@KirillOsenkov

Description

@KirillOsenkov

I noticed that when .sln.metaproj is evaluated via ProjectInstance.LoadSolutionForBuild we are passing a valid submission ID but it is not being set on the BuildEventContext used for logging. So evaluation logging events end up having SubmissionId == -1, and thus the loggers registered with the MuxLogger in the IDE do not get the evaluation events.

This is the problematic constructor:

internal ProjectInstance(ProjectRootElement xml, IDictionary<string, string> globalProperties, string toolsVersion, ILoggingService loggingService, int visualStudioVersionFromSolution, ProjectCollection projectCollection, ISdkResolverService sdkResolverService, int submissionId)
{
BuildEventContext buildEventContext = new BuildEventContext(0, BuildEventContext.InvalidTargetId, BuildEventContext.InvalidProjectContextId, BuildEventContext.InvalidTaskId);
Initialize(xml, globalProperties, toolsVersion, null, visualStudioVersionFromSolution, new BuildParameters(projectCollection), loggingService, buildEventContext, sdkResolverService, submissionId);
}

It is only being called in one place:

var traversalInstance = new ProjectInstance(
traversalProject,
_globalProperties,
explicitToolsVersionSpecified ? wrapperProjectToolsVersion : null,
_loggingService,
_solutionFile.VisualStudioVersion,
new ProjectCollection(),
_sdkResolverService,
_submissionId);

This constructor should be passing the submission Id to the BuildEventContext, but it just passes it on down.

Sample call stack:

	Evaluator`4.Evaluate
	ProjectInstance.Initialize
	ProjectInstance..ctor
	SolutionProjectGenerator.CreateTraversalInstance
	SolutionProjectGenerator.CreateSolutionProject
	SolutionProjectGenerator.Generate
	SolutionProjectGenerator.Generate
	ProjectInstance.GenerateSolutionWrapper
	ProjectInstance.LoadSolutionForBuild
	BuildManager.LoadSolutionIntoConfiguration
	BuildManager.HandleNewRequest
	BuildManager.<>c__DisplayClass95_0.<IssueBuildRequestForBuildSubmission>g__IssueBuildSubmissionToSchedulerImpl|1
	BuildManager.IssueBuildRequestForBuildSubmission
	BuildManager.ProcessWorkQueue
	BuildManager.<BeginBuild>b__63_3

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions