Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Read required project properties from evaluation data #64749

Merged
merged 3 commits into from
Oct 18, 2022

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 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