-
-
Notifications
You must be signed in to change notification settings - Fork 96
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
Cache dotnet info results per global.json file #227
Comments
I just bumped the timeout to 10 seconds in version 6.0.2 (see #228) and there's now a I do really like the idea of caching the |
@Corniel, I'm going to implement this feature, I thought of a static class to store this cache during execution or use the InMemory cache, do you have any considerations? If you've already started something, I can get another feature too. |
I thought about having it in place why logging/running/tracing the build. I think the scope of one run would be sufficient, but may be a static cache will work better. |
PR with the feature. |
Caching has been implemented, @petertiedemann I will close this issue, let us know if there is any problem, thank you. |
I ran into this problem with stryker.net (which uses Buildalyzer), getting exceptions like this
I was able to reproduce it directly against Buildalyzer (main branch) using this type of test ( no sln included here, but I think any large sln file should do, mine has 278 projects, and was executed on a 5950x CPU with 16c/32t).
As far as I can tell the problem is that the time-out in
DotnetPathResolver.cs
for running dotnet --info is "only" 4000ms, and when that time-out is exceeded it fails somewhat silently. In my case I just bumped it to 60000ms.I wondering if perhaps an optimization is in order to avoid invoking dotnet --info so many times? AFAIK the info will only change if a global.json file is placed in a subfolder above the project file, so it should only be necessary to call dotnet --info once per located global.json (+1 if no global.json exists).
The text was updated successfully, but these errors were encountered: