-
Notifications
You must be signed in to change notification settings - Fork 389
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
Build Acceleration - Default to On #9106
Comments
Hi, thanks for the improvement. In which version of VisualStudio it is set to ON? |
hi @LevYas thanks for your interest. This has been turned on by default in 17.9 release for sdk style (.NET core) projects. |
The default setting for build acceleration changed in VS 17.9 (according to the last internal VS check-ins referenced in this issue). We are building SDK-style projects that target .NET Framework, and for our projects this update turned out to be a surprising and hard-to-track-down breaking change. (Even though the previous comment suggests it changed for "sdk style (.NET core) projects", our sdk style (.NET Framework)" project was affected.) The default changed with no indication in the Visual Studio release notes. The behavior of the "FastUpToDate" build is different to the normal MSBuild in that additional transitive dependencies are copied to the output, where MSBuild would not copy these files. With build acceleration on, the extra files will be copied to output when either doing "Build" or starting to debug, which both trigger the "FastUpToDate" build and hence the extra copy. When doing a "Rebuild" or building after changes, the real MSBuild build is run, which does not copy the extra files. This is even more confusing, since extra files will remain in the output until manually deleted ("Clean" runs MSBuild, which will not remove the extra files). Whether the extra files should be there or not is another matter, but having these two incompatible build behaviors is very confusing. In our case these files were not used, but broke things at runtime. Furthermore, there are now two settings in Visual Studio with unclear interaction.
in additional to the explicit project property It would be helpful to clean up and document these options, and to document this breaking change in the release notes for Visual Studio. Finally, it would be helpful to know why the build behavior is different (why additional files are copied as part of the "FastUpToDate" build which would not be copied by a real MSBuild build). Even if there is an argument for why these files should be in the output, neither MSBuild builds nor previous Visual Studio version would put them there. One would expect the accelerated build in Visual Studio to only be an optimization and not introduce changed behavior. |
@govert we definitely want parity between MSBuild and Build Acceleration. Could you verify whether the issue you're seeing is the same as #9001 or #8728? If not, please file a new issue and include enough information to repro the problem, so we can investigate. Thank you and sorry for the trouble here. |
Hmm. I think I just opened another issue that relates to this topic - see #9416 (comment) |
@drewnoakes I've tried to write up our case in #9417 |
Summary
In 17.5 Build Acceleration was released as an opt in feature and this had significant impact on build performance as detailed in the discussion board
Next Step is to turn this on by default.
Considerations
User Impact
~80% increase in build performance:
Tasks
The text was updated successfully, but these errors were encountered: