Error When Extracting (coredll.dll)

Aug 5, 2010 at 11:44 AM

Man, I hope this one is easy and quick.

Here's the Error Message:
Unable to load DLL 'coredll.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)The thread 0x960 has exited with code 0 (0x0).

Here's the project if you want a reference:
http://cid-3832d79b279e6224.office.live.com/self.aspx/Public/ConsoleApplication1.zip

Here's a snippet (this is actually all of it):

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var _Path = @"C:\Projects\ConsoleApplication1\ConsoleApplication1\file.zip";
                using (ZipFile _ZipFile = new ZipFile(_Path))
                {
                    _ZipFile.ExtractAll("C:/temp/");
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }
    }

Coordinator
Aug 13, 2010 at 6:16 PM
No, I don't know what the problem might be. maybe google will have some suggestions. Good luck .
Aug 13, 2010 at 7:35 PM

Google brings me here, of course. :S As if I hadn't been all over Google about this.

Anyway, I have a work around (read: hack) where I extract to a stream and then save the stream.

It's not perfect, but here's how I do it for now:

using (ZipFile _ZipFile = new ZipFile(source))
{
    foreach (var _Zip in _ZipFile)
    {
        if (_Zip.IsDirectory)
            continue;
        var _File = System.IO.Path.GetFileName(_Zip.FileName);
        var _Path = System.IO.Path.Combine(target, _File);
        using (MemoryStream _MemoryStream = new MemoryStream())
        {
            _Zip.Extract(_MemoryStream);
            using (FileStream _FileStream = File.OpenWrite(_Path))
            {
                _FileStream.Write(_MemoryStream.GetBuffer(), 0, (int)_MemoryStream.Position);
            }
        }
    }
}

Coordinator
Aug 14, 2010 at 11:31 AM
Edited Aug 15, 2010 at 12:01 PM
I just searched for "coredll.dll missing", and the top 2 pages of results did not include any dotnetzip results. Stackoverflow.com has a good explanation. Seems to be a .NET cf dll, not available on the desktop. The problem you saw is only tangentially rElated to DotNetZip. Good luck.
Oct 8, 2010 at 1:30 PM
Edited Oct 8, 2010 at 1:31 PM

I also have the same problem, but then it turned out I was using the Compact Framework release, which triggered this error. After I referenced the normal release, it worked without triggering this error about coredll.

Coordinator
Oct 14, 2010 at 9:40 PM

Right, that would make sense, given my answer of August 14th. 

If you run the app on the desktop, make sure you link against the Desktop version of the DotNetZip dll.  If you run the app on a mobile device, link against the .NET CF version of DotNetZip.