[build] Build additional $(TargetFramework) values.
#605
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.
Now that most projects are Short-Form projects (cedf4d0), we can use
MSBuild multitargeting and the
$(TargetFrameworks)MSBuildproperty to build for multiple target frameworks at once.
This in turn will allow us to determine which apps can be built
against the
.NETCoreApp,Version=v3.1framework, which is our current"stepping stone" to eventual .NET 5 compatibility.
Rename
Configuration.propstoDirectory.Build.props, so that itdoesn't need to be explicitly
<Import/>ed everywhere.Update all projects so that
$(OutputPath)is in turn a variabledefined in
Directory.Build.props:$(BuildToolOutputFullPath): Build-time utilities, e.g. filesthat belong in
bin/BuildDebug.$(ToolOutputFullPath): "Normal" output, e.g.bin/Debug.$(TestOutputFullPath): Test-related artifacts, e.g.bin/TestDebug.$(UtilityOutputFullPath): "Normal" output that is shared withxamarin-android and needs an alternate installation location when
built from xamarin-android.
Of note is that when
$(TargetFramework)starts withnetcoreapp,the above properties are changed to have a
-$(TargetFramework)suffix.
Update a few tools projects so that they build for both
net472andnetcoreapp3.1frameworks, e.g.tools/logcat-parsenow produces:bin/Debug-netcoreapp3.1/logcat-parse.deps.jsonbin/Debug-netcoreapp3.1/logcat-parse.dllbin/Debug-netcoreapp3.1/logcat-parse.pdbbin/Debug-netcoreapp3.1/logcat-parse.runtimeconfig.dev.jsonbin/Debug-netcoreapp3.1/logcat-parse.runtimeconfig.jsonbin/Debug/logcat-parse.exebin/Debug/logcat-parse.exe.configbin/Debug/logcat-parse.pdbSome projects fail when building for
netcoreapp3.1. These projectswill be fixed separately.