-
Notifications
You must be signed in to change notification settings - Fork 833
Dev15.6 -- Fix multi-targetting / F# IDE #4286
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
Conversation
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.
pending ship room approval
|
Link #4084 - I suspect that this will be difficult for OSS folks to test. @ctaggart and @eiriktsarpalis, can you help provide some examples of things you'd like to do so that we can test those scenarios prior to merging? |
|
Here is an open source one I just created. I can't set a breakpoint in Froto.Parser if I make it multi-targeting. Try running Froto.Compiler and setting a breakpoint anywhere in Froto.Parser. git clone -b TargetFrameworks https://github.com/ctaggart/froto.git
dotnet restore .\Froto.sln
.\Froto.sln |
|
@ctaggart |
|
I think fixing intellisense and debugging are the main blockers for me. Another issue is that |
* Fix multi-targetting * Refactor * address project relative paths


Multi-targeting doesn't work correctly in the F# IDE.
Relies on this Project System PR: dotnet/project-system#3198
The reason is the IDE doesn't know how to identify the correct cached references and source files. Currently it uses the project file name, this is insufficient because in a multi-targeting project there is in fact an in memory project for each target framework.
The project tracker can identify the correct in memory project using the binpath of the project output file. In the project system the context object also identifies the binpath for the project being "design-time" built.
This change modifies the CommandLine notification to send the binpath rather than the project path.
The code can handle the existing behavior of the CommandLine If the binpath doesn't find a project, it then tries the project file name. And behaves the same as before.
Kevin