Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Xamarin.Android.Build.Tasks] Extract resources with S.I.C.ZipFile. (#41
) Ionic.Zip.dll, as provided by the Unofficial.Ionic.Zip 1.9.1.8 NuGet package, is broken. [It hardcodes `\` as directory separator char][0], which breaks all manner of things, and when we try to extract and unzip embedded resources from assemblies, it fails: Error executing task ResolveLibraryProjectImports: System.ArgumentException: Path is empty at System.IO.Directory.CreateDirectory (System.String path) <0x1a20ca0 + 0x0011c> in <filename unknown>:0 at Ionic.Zip.ZipEntry.InternalExtract (System.String baseDir, System.IO.Stream outstream, System.String password) <0x3af4b78 + 0x002e7> in <filename unknown>:0 I'm not sure *why* "path is empty" -- the callstack isn't very helpful -- but it *is* empty, which means if a project references an assembly which contains e.g. @(AndroidResource), everthing breaks. Fix the `ResolveLibraryProjectImports` task so that instead of using Ionic.Zip.dll to extract embedded resources we instead use System.IO.Compression.ZipFile (in System.IO.Compression.FileSystem.dll, new in .NET 4.5). Note: *Other* uses of Ionic.Zip.dll are similarly suspect but *are not fixed*. Fixing (removing?) Ionic.Zip.dll will be done later. [0]: https://gitter.im/xamarin/xamarin-android?at=572d97caf36daf63798d6033
- Loading branch information