-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Update to Unified Build controls #38506
Conversation
Generally changes DotNetBuildFromSource -> DotNetBuildSourceOnly. Removes some usages in places where TFM filtering will do the job in place of explicit per-project filtering. Change the Microsoft.Build logic to support building the VMR against minimumMSBuildVersion in non-source-only modes.
Currently in testing. Hold please. |
Should resolve #27562 and repo changes necessary for dotnet/source-build#4031 |
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.
@marcpopMSFT should probably also review.
modes or normal modes. In normal modes we use MicrosoftBuildMinimumVersion, otherwise | ||
we use MicrosoftBuildVersion. Note: This is not abstracted in Versions.props because source-only | ||
modes will import a version override file after Versions.props. --> | ||
<ItemGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'"> |
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.
@rainersigwald I think this maintains the same split versions between source build and not as before but I figure someone from msbuild should double check that.
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.
@dotnet/kitten ? I can look at some point but am out sick.
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.
Yeah, intention was to maintain the split versions. When building in MSFT mode, it should maintain the same behavior as the repo in isolation.
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.
The key bit is that I changed the way the split versions are maintained so that it works with non-SB VMR builds.
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Merging to get these fixes into the VMR for unified build. If there's additional feedback we can address that in a follow-up. |
MSBuild references were changed in #38506 to use MSBuildMinimumVersion in all non-source-build scenarios, but that's not necessary: the SDK will deliver the latest .NET MSBuild and use it for all CLI-driven builds. Using the old version broke some tests because of a mismatch between newer targets and the old engine that was being used to execute tests. Instead, split the reference based on the TF of the project that is building: for `net472`, use the minimum version if available, but for `$(SdkTargetFramework)` always use the latest.
MSBuild references were changed in #38506 to use MSBuildMinimumVersion in all non-source-build scenarios, but that's not necessary: the SDK will deliver the latest .NET MSBuild and use it for all CLI-driven builds. Using the old version broke some tests because of a mismatch between newer targets and the old engine that was being used to execute tests. Instead, split the reference based on the TF of the project that is building: for `net472`, use the minimum version if available, but for `$(SdkTargetFramework)` always use the latest.
MSBuild references were changed in #38506 to use MSBuildMinimumVersion in all non-source-build scenarios, but that's not necessary: the SDK will deliver the latest .NET MSBuild and use it for all CLI-driven builds. Using the old version broke some tests because of a mismatch between newer targets and the old engine that was being used to execute tests. Instead, split the reference based on the TF of the project that is building: for `net472`, use the minimum version if available, but for `$(SdkTargetFramework)` always use the latest.
MSBuild references were changed in dotnet#38506 to use MSBuildMinimumVersion in all non-source-build scenarios, but that's not necessary: the SDK will deliver the latest .NET MSBuild and use it for all CLI-driven builds. Using the old version broke some tests because of a mismatch between newer targets and the old engine that was being used to execute tests. Instead, split the reference based on the TF of the project that is building: for `net472`, use the minimum version if available, but for `$(SdkTargetFramework)` always use the latest.
Generally changes DotNetBuildFromSource -> DotNetBuildSourceOnly. Removes some usages in places where TFM filtering will do the job in place of explicit per-project filtering. Change the Microsoft.Build logic to support building the VMR against minimumMSBuildVersion in non-source-only modes.