Skip to content

Commit a816e23

Browse files
committed
Use targeting pack metadata to set $(_XATargetFrameworkDirectories)
Certain tasks require that $(_XATargetFrameworkDirectories) contains paths to both Mono.Android.dll and mscorlib.dll. In order to ensure that this property contains all known assembly paths we'll use the @(ResolvedTargetingPack) ItemGroup. These items contain metadata definitions for %(TargetFramework) and %(PackagePath), which can be combined to construct the full assembly path for each pack.
1 parent bf6dced commit a816e23

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/Xamarin.Android.Build.Tasks/Xamarin.Android.Tooling.targets

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,16 @@ projects.
5050
</PropertyGroup>
5151

5252
<Target Name="_ResolveSdks" DependsOnTargets="$(_ResolveSdksDependsOnTargets)">
53+
<!-- When using .NET 5, provide a list of paths to the Android and NETCore targeting pack directories, e.g.
54+
`packages\microsoft.android.ref\10.0.100-ci.master.22\ref\net5.0\` and
55+
`C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0-preview.6.20264.1\ref\net5.0\`
56+
-->
57+
<ItemGroup Condition=" '$(UsingAndroidNETSdk)' == 'True' ">
58+
<_ResolveSdksFrameworkRefAssemblyPaths Include="@(ResolvedTargetingPack->'%(PackageDirectory)\ref\%(TargetFramework)')" Condition=" '@(ResolvedTargetingPack)' == '@(FrameworkReference)' and '%(Identity)' != '' " />
59+
</ItemGroup>
5360
<PropertyGroup>
5461
<_AndroidAllowMissingSdkTooling Condition=" '$(_AndroidAllowMissingSdkTooling)' == '' ">False</_AndroidAllowMissingSdkTooling>
55-
<!-- When using .NET 5, provide the path to Mono.Android.dll e.g.
56-
`packages\microsoft.android.ref\10.0.100-ci.master.22\ref\net5.0\`
57-
-->
58-
<_XATargetFrameworkDirectories Condition=" '$(UsingAndroidNETSdk)' == 'True' And '%(FileName)%(Extension)' == 'Mono.Android.dll' ">@(Reference->'%(RootDir)%(Directory)')</_XATargetFrameworkDirectories>
62+
<_XATargetFrameworkDirectories Condition=" '$(UsingAndroidNETSdk)' == 'True' ">@(_ResolveSdksFrameworkRefAssemblyPaths)</_XATargetFrameworkDirectories>
5963
</PropertyGroup>
6064
<ResolveSdks
6165
ContinueOnError="$(_AndroidAllowMissingSdkTooling)"

0 commit comments

Comments
 (0)