[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.1
framework, which is our current"stepping stone" to eventual .NET 5 compatibility.
Rename
Configuration.props
toDirectory.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
net472
andnetcoreapp3.1
frameworks, e.g.tools/logcat-parse
now produces:bin/Debug-netcoreapp3.1/logcat-parse.deps.json
bin/Debug-netcoreapp3.1/logcat-parse.dll
bin/Debug-netcoreapp3.1/logcat-parse.pdb
bin/Debug-netcoreapp3.1/logcat-parse.runtimeconfig.dev.json
bin/Debug-netcoreapp3.1/logcat-parse.runtimeconfig.json
bin/Debug/logcat-parse.exe
bin/Debug/logcat-parse.exe.config
bin/Debug/logcat-parse.pdb
Some projects fail when building for
netcoreapp3.1
. These projectswill be fixed separately.