diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ResolveAssemblies.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ResolveAssemblies.cs index a720ed416b2..65bc3684cc5 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ResolveAssemblies.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ResolveAssemblies.cs @@ -211,15 +211,21 @@ void AddAssemblyReferences (MetadataResolver resolver, Dictionary(); - CheckAssemblyAttributes (assembly, reader); + CheckAssemblyAttributes (assembly, reader, out string targetFrameworkIdentifier); LogMessage ("{0}Adding assembly reference for {1}, recursively...", new string (' ', indent), assemblyName); resolutionPath.Add (assemblyName); indent += 2; // Add this assembly - if (!topLevel) { - assemblies [assemblyName] = CreateAssemblyTaskItem (Path.GetFullPath (assemblyPath)); + if (topLevel) { + if (!string.IsNullOrEmpty (targetFrameworkIdentifier) && assemblies.TryGetValue (assemblyName, out ITaskItem taskItem)) { + if (string.IsNullOrEmpty (taskItem.GetMetadata ("TargetFrameworkIdentifier"))) { + taskItem.SetMetadata ("TargetFrameworkIdentifier", targetFrameworkIdentifier); + } + } + } else { + assemblies [assemblyName] = CreateAssemblyTaskItem (assemblyPath, targetFrameworkIdentifier); } // Recurse into each referenced assembly @@ -257,8 +263,10 @@ void AddAssemblyReferences (MetadataResolver resolver, Dictionary + + + +