Support building on Linux #3311
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Work-in Progress
Changes to the build system to support building all targets on Linux. This mostly involved removing properties from
build.proj
that artifically restricted what would be built based on the OS, and then filtering those changes down into all of the project files.Major Changes:
TF
property is now used to explicitly decide what Target Frameworks to specify when building AKV and tests, and running tests.build.proj
properties:IsEnabledWindows
TargetGroup
TargetNetFxVersion
TargetNetCoreVersion
TestOS
TestTargetOS
TFGroup
TF
then all Target Frameworks are built (net462, net8.0, net9.0).build.proj
target that implies .NET Framework, then just net462 is used.build.proj
target that implies .NET, then net8.0 and net9.0 are used.RunFunctionalTestsWindows
,RunFunctionalTestsUnix
,RunManualTestsWindows
, andRunManualTestsUnix
targets now runs .NET tests only.RunFunctionalTestsWindowsNetFx
andRunManualTestsWindowsNetFx
targets were added that run those .NET Framework tests on Windows.TF
where appropriate.Internal Changes:
build.proj
targets that imply a Target Framework use newBuildProj
andTargetsNetFx
properties to control the downstream projects where necessary (i.e. AKV and test projects).<TargetFrameworks>
, even if they only specify a single target framework.Directory.Build.props
files.Outstanding Issues:
BuildTests
target still doesn't work (it didn't work before these changes). There is a problem building .NET and .NET Framework targets in parallel.