-
Notifications
You must be signed in to change notification settings - Fork 520
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
Support for BaseIntermediateOutputPath #3527
Support for BaseIntermediateOutputPath #3527
Conversation
@matthid ?? |
This doesn't scale for more projects and introduces a perf regression, for example this most likey makes fake solution unworkable. While this is opt in I'm not a fan, in fact this pseudo fixes the issue until one with a huge solution needs this... Personally I wouldn't merge this. But it solves someone's problem. It will be an option practically nobody has enabled and therefore we will not catch regressions easily... Well that's my 2cents |
Do you have other ideas how to otherwise add support for BaseIntermediateOutputPath? |
Alternatively I'm thinking of finding |
MsBuild is a full programming evironment in xml, that approach is going to fail for anything but the simplest files. That's also why any "outside" parsing of project files will fail - you need msbuild. https://github.com/enricosada/dotnet-proj-info does use MsBuild and so should work correctly. My opinion is that the perf hit would be acceptable for anything but the largest solutions with literally hundreds of projects, the restore is cached anyway. But as always with performance, it needs to be timed and profiled. |
But that was exactly why I stopped with my PR :) |
Sadly this is not the problem. In fact the problem is that even while Microsoft caches its stuff Paket does not and basically last time I checked even if Microsoft cache was up to date it would still call |
Looking at this PR again, maybe it is acceptable: |
Do you mean restore with If so, shall I simply remove |
Like in 25b1e8b ? |
Yes, however please leave it in the argu arguments such that |
Ok - done. Added also a short note to docs |
424a468
to
6a8ab32
Compare
@matthid This is now ready for review |
821c4ce
to
0c68e18
Compare
can you please merge with master? |
0c68e18
to
8730c47
Compare
There you go |
Seems CI is telling me I broke one existing integration tests - will investigate |
8730c47
to
b83e1d5
Compare
The integration test fails probably due to breaking change in |
Think I finally got it right |
thanks. this is released |
This is a follow up for #2642
I didn't go the "try to parse MSBuild variable for global restore" path, but instead decided to add option to disable paket global restore.
Given following
Directory.Build.props
file:I read
PaketDisableGlobalRestore
property inPaket.Restore.targets
:which basically makes I skip global restore.
Then for each project I pass
BaseIntermediateOutputPath
:End game for my use case is I can build same project simultaneously on OSX and Windows and paket doesn't interfere.
I have few projects in solution, that's why skipping global restore optimisation is reasonable for me.
I'm aware my proposed solution isn't ideal, but at least it works for me and requires an explicit opt-in.
Please let me know what you think @forki @matthid @0x53A - if this is OK then I'll proceed with adding some docs and an integration test