-
Notifications
You must be signed in to change notification settings - Fork 790
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
Fix for: 3596 --- [.NET Framework Projects] IDE is confused about the last file to compile #3603
Conversation
… last file to compile
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not fix #3596 in a hive for me. The supplied repro project exhibits the following:
@cartermp this works for me. So what are the specifics of the repro for the failure. If you are in the office tomorrow can you drop by my office and show me the failure. Thanks |
@KevinRansom What I saw was from f5 into a new hive off of this branch. Though given that @majocha sees it fixed, I suspect it may be something on my machine. |
@@ -273,9 +273,13 @@ type internal FSharpProjectOptionsManager | |||
} | |||
|
|||
member this.UpdateProjectInfoWithProjectId(projectId:ProjectId, userOpName) = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if we should systematically clarify between "LegacyProject" and "ModernProject" throughout the naming of method like this, so
UpdateProjectInfoWithProjectId --> UpdateModernProjectInfoWithProjectId
SetupProject --> SetupLegacyProject
etc. That may help us reason correctly about the two separate paths
@dsyme, I don't really see it as legacy projects and CPS projects. I think the SetupProject path needs to go away ... after all everything is Roslyn really not CPS and MPS. However ... before that happens we need to do some work to ensure that the notifications don't swamp the FCS with invalidates ... which is what happens right now. |
That might be true, though the current code definitely has these two modalities, I don't think I can think through it without distinguishing between these paths. |
So there aren't really two code paths .... there are just different preparations prior to calling updateprojectinfo.
Perhaps Skype when I get into work, and we can talk it through ... because I honestly am a bit embarrassed how little churn this change involved, considering how long it took and how confused I was. Kevin |
@KevinRansom OK, thanks. I'll add some comments next time I visit the code |
… last file to compile (dotnet#3603)
Okay the fix here is to check to see if the project supports CPS before invoking from Workstation events.
I don't think this is the long term solution ... but right now setupproject is needed to eagerly fetch everything needed to compile the project. I expect that we should evolve to the circumstance where we rely on the events.
Anyway this should solve the problem.