It's possible the self-extracting archive is not actually a valid zip file. That seems to be what DotNetZip is telling you.
you say the archive was "not generated by WinZip". What was it generated by?
Can you read the generated archive in WinZip?
Some "self extracting archives" are not zip files. The ones generated by winzip are zip files.
In some cases the self-extracting archive is a file that contains a valid zip file; for example a file that consists of a stub exe, along with the contents of a valid zip file appended to it. In that case you may need to (1) open
a stream on the file, (2) seek to the beginning of the actual zip content in the file, and finally (3) pass the stream to ZipFile.Read(), in order to read it as a zip file with DotNetZip. I believe that should work. But you will need to know exactly
where the zip content starts.