-
Notifications
You must be signed in to change notification settings - Fork 387
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
Project System: Up-to-date check #62
Comments
tag @KirillOsenkov |
Please also factor in concerns raised here: https://connect.microsoft.com/VisualStudio/feedback/details/2468519/visual-studio-incremental-build-issue-fastuptodatecheck-doesnt-monitor-xml-documentation-files |
From @KirillOsenkov on April 30, 2016 4:14 tag @ljcollins25 |
It looks like
|
This tracks the feature to do an up-to-date check. Not fixed by #351. |
csproj also respects |
Also respects |
I think we should create two new items to drive this that:
|
There are still some issues remaining. |
@davkean It looks like ExcludedFromBuild is only used in C++ projects, as far as I can tell. Are you aware of scenarios where it's used for VB/C#/F#? |
@davkean Similarly, UpToDateCheckInput and UpToDateCheckOutput seem to be C++ specific as well? |
Not sure about |
Ah, yeah, missed that last one behind the #define name... |
All outstanding issues logged to new issues. |
Hi @davkean. We are waiting to get PR #2346 on our hands, to fix a build error... as https://developercommunity.visualstudio.com/content/problem/46717/disablefastuptodatecheck-in-project-file-no-longer.html isn't referenced on any preview release notes, can we get this PR on a new preview 3 realease? |
@ebonato - this issue and the PR you mention are tracking up-to-date check for the new project system (i.e for .NET Core.NET Standard projects in VS 2017). The developercommunity issue talks of a regression in the old project system (regression from vs2015 - the new project system is only in vs2017). That bug is on @panopticoncentral as well but hasn't been investigated yet. |
@srivatsn, look again in community issue from Mr. DoubleYou... The bug is reported for VS 2017 (15.1)... It only states that DisableFastUpToDateCheck csproj property works expected in VS2015. |
Sorry, I'm not following you. Here's the current status:
|
@srivatsn, @davkean I'm using VS 15.5.5 by default "Don't call MSBuild if a project appears to be up to date" is true, but still my NetStandard2.0 projects are rebuilding on running unit test, even after rebuilding all projects in solution. Here is the output: Any ways to make sure that after rebuilding and running test will not build core projects again? Thanks, |
Also tagging @panopticoncentral who as been looking at Fast up to date check stuff. Also - is this a dupe of #2763? |
#2763 is NOT marked as closed. |
Move to editor model for viewing binary logs (+ some cleanups)
CPS does not provide a project system up-to-date check out of the box - to get a similar experience to csproj/msvbproj where they only call MSBuild after they've determined that they are out of date, we should implement one.
Design
To do a fast up-to-date check, we should implement IBuildUpToDateCheckProvider, a configured level service, that is called back to determine if build should call into MSBuild.
Requirements
<DisableFastUpToDateCheck>
property to disable the build<ExcludedFromBuild>
on itemsIItemType.UpToDateCheckInput
on other items (basically all known items) - seeIProjectItemSchemaService
<UpToDateCheckOutput Include=""/>
and<UpToDateCheckInput Include=""/>
to supplement the build. We'll need to create ProjectItemDefinitions for these (so that we see them in data flow) and setUpToDateCheckInput
for the later.<UseCommonOutputDirectory>
where dependencies aren't copied to the output directory.<CopyToOutputDirectory>
items especially when set to<Always>
where the legacy project system always shells out to MSBuild.<FileWrites>
vs<UpToDateCheckOutput>
(should we respect the former to avoid having update all of msbuild to tell us about all the outputs?)Things to watch out for
TargetFramework
property. This is really important, and it means we need to factor in all other active configurations as to the determination of whether we need to shell out to MSBuild.The text was updated successfully, but these errors were encountered: