Skip to content

Read required project properties from evaluation data#64749

Merged
tmat merged 3 commits intodotnet:mainfrom
tmat:ProjectProps
Oct 18, 2022
Merged

Read required project properties from evaluation data#64749
tmat merged 3 commits intodotnet:mainfrom
tmat:ProjectProps

Conversation

@tmat
Copy link
Member

@tmat tmat commented Oct 14, 2022

Following up on dotnet/project-system#8499.

This PR finishes the refactoring of the interface between Roslyn and Project System.

@tmat tmat requested review from a team as code owners October 14, 2022 23:45
@ghost ghost added the Area-IDE label Oct 14, 2022
@tmat tmat merged commit 290720f into dotnet:main Oct 18, 2022
@tmat tmat deleted the ProjectProps branch October 18, 2022 01:48
@ghost ghost added this to the Next milestone Oct 18, 2022
genlu added a commit that referenced this pull request Oct 18, 2022
drewnoakes added a commit to drewnoakes/project-system that referenced this pull request Oct 19, 2022
Historically, the set of project properties we passed to Roslyn when initialising an `IWorkspaceProjectContext` was hard-coded in the project system. We changed this recently in dotnet#8499, and introduced a means for Roslyn to request whatever properties they wanted, allowing Roslyn to make changes without requiring a synchronised change in the project system.

With that change, we serviced property value requests using `ProjectRuleSource` data. This limited Roslyn to only those properties present in our `ConfigurationGeneral` XAML rule file.

This commit uses a `ProjectInstance` to service such requests instead. This means that Roslyn can add new projects in their own props/targets, and not need the project system to make any changes in order to provide those values.

Motivated by a bug exposed through dotnet/roslyn#64749 which added required property `OutputAssemblyForDesignTimeEvaluation` which did not exist in our rules, leading to runtime errors.
drewnoakes added a commit to drewnoakes/project-system that referenced this pull request Oct 19, 2022
Historically, the set of project properties we passed to Roslyn when initialising an `IWorkspaceProjectContext` was hard-coded in the project system. We changed this recently in dotnet#8499, and introduced a means for Roslyn to request whatever properties they wanted, allowing Roslyn to make changes without requiring a synchronised change in the project system.

With that change, we serviced property value requests using `ProjectRuleSource` data. This limited Roslyn to only those properties present in our `ConfigurationGeneral` XAML rule file.

This commit uses a `ProjectInstance` to service such requests instead. This means that Roslyn can add new projects in their own props/targets, and not need the project system to make any changes in order to provide those values.

Motivated by a bug exposed through dotnet/roslyn#64749 which added required property `OutputAssemblyForDesignTimeEvaluation` which did not exist in our rules, leading to runtime errors.
@RikkiGibson RikkiGibson modified the milestones: Next, 17.5 P1 Oct 24, 2022
drewnoakes added a commit to drewnoakes/project-system that referenced this pull request Oct 27, 2022
Historically, the set of project properties we passed to Roslyn when initialising an `IWorkspaceProjectContext` was hard-coded in the project system. We changed this recently in dotnet#8499, and introduced a means for Roslyn to request whatever properties they wanted, allowing Roslyn to make changes without requiring a synchronised change in the project system.

With that change, we serviced property value requests using `ProjectRuleSource` data. This limited Roslyn to only those properties present in our `ConfigurationGeneral` XAML rule file.

This commit uses a `ProjectInstance` to service such requests instead. This means that Roslyn can add new projects in their own props/targets, and not need the project system to make any changes in order to provide those values.

Motivated by a bug exposed through dotnet/roslyn#64749 which added required property `OutputAssemblyForDesignTimeEvaluation` which did not exist in our rules, leading to runtime errors.
haileymck pushed a commit to haileymck/project-system that referenced this pull request Nov 8, 2022
Historically, the set of project properties we passed to Roslyn when initialising an `IWorkspaceProjectContext` was hard-coded in the project system. We changed this recently in dotnet#8499, and introduced a means for Roslyn to request whatever properties they wanted, allowing Roslyn to make changes without requiring a synchronised change in the project system.

With that change, we serviced property value requests using `ProjectRuleSource` data. This limited Roslyn to only those properties present in our `ConfigurationGeneral` XAML rule file.

This commit uses a `ProjectInstance` to service such requests instead. This means that Roslyn can add new projects in their own props/targets, and not need the project system to make any changes in order to provide those values.

Motivated by a bug exposed through dotnet/roslyn#64749 which added required property `OutputAssemblyForDesignTimeEvaluation` which did not exist in our rules, leading to runtime errors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants