diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs index 277ccfbd5be..cb30333484f 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs @@ -232,7 +232,8 @@ void Extract ( // temporarily extracted directory will look like: // __library_projects__/[dllname]/[library_project_imports | jlibs]/bin - ZipFile.ExtractToDirectory (finfo.FullName, outDirForDll); + using (var zip = MonoAndroidHelper.ReadZipFile (finfo.FullName)) + Files.ExtractAll (zip, outDirForDll); // We used to *copy* the resources to overwrite other resources, // which resulted in missing resource issue. diff --git a/src/Xamarin.Android.Build.Tasks/Utilities/Files.cs b/src/Xamarin.Android.Build.Tasks/Utilities/Files.cs index 140b56a75dc..2410688a5f4 100644 --- a/src/Xamarin.Android.Build.Tasks/Utilities/Files.cs +++ b/src/Xamarin.Android.Build.Tasks/Utilities/Files.cs @@ -198,9 +198,9 @@ public static void ExtractAll(ZipArchive zip, string destination, Action fileNa public static bool ContainsEntry (this ZipArchive archive, string entryName) { - return archive.Entries.Any (x => string.Compare (x.Name, entryName, StringComparison.OrdinalIgnoreCase) == 0); + return archive.Entries.Any (x => string.Compare (x.FullName, entryName, StringComparison.OrdinalIgnoreCase) == 0); } public static bool IsDirectory (this ZipArchiveEntry entry)