[Xamarin.Android.Build.Tasks] Fix incremental rebuilds (Take 2!) #24
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.
Rebuilding the Xamarin.Android.Build.Tasks project would fail:
The problem was due to a3dfd4c and 59ec488:
Xamarin.Android.Build.Tasks.targets
was includedbefore including
$(MSBuildToolsPath)\Microsoft.CSharp.targets
.This meant that
$(IntermediateOutputPath)
wasn't set whenXamarin.Android.Build.Tasks.targets
was imported, and thus$(_GeneratedProfileClass)
contained no directory name.@(Compile)
item group was only updated when the_GenerateProfileClass
target was executed, which only happenedwhen
$(_GeneratedProfileClass)
didn't exist. This is why itworks on the initial build but not subsequent builds.
Things worked prior to a3dfd4c because the
_Foo
target alwaysexecuted, and thus
@(Compile)
always contained the generatedProfile.g.cs file.
Fix the
<Import/>
ordering issue (1), and instead of updating@(Compile)
when the target executes, just add the generated file to@(Compile)
within Xamarin.Android.Build.Tasks.csproj (2).