You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[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
0 commit comments