[
  {
    "Id": "214220",
    "ThreadId": "63048",
    "Html": "<p>Hi Cheeso,</p>\r\n<p>Do you use Resharper?</p>\r\n<p>It found in ZipFile.cs some possible real problems and some code cleanliness problems.</p>\r\n<p><strong>Possible problems:</strong></p>\r\n<ul>\r\n<li>Possible null ref in WriteCentralDirectoryFooter(...) bytes[i+j] = <span style=\"text-decoration:underline\">block</span>[j]</li>\r\n<li>Wrong ArgumentException parameter in Save(string filename):  &quot;ZipFilename&quot; should be &quot;filename&quot; </li>\r\n</ul>\r\n<p><strong>Redundant code: </strong></p>\r\n<ul>\r\n<li>ReadCentralDirectoryFooter(ZipFile zf) has 10 lines referring to int i, but it is never used.</li>\r\n<li>Redundant base interface declerations. enough to write: partial class ZipFile { ... </li>\r\n</ul>\r\n<p>&nbsp;</p>\r\n<p><strong>And various code style suggestions</strong> (which you may not necessarily agree with) such as:</p>\r\n<ul>\r\n<li>use string not System.String&nbsp;&nbsp; (was code automatically converted from VB)</li>\r\n<li> use bool?&nbsp; instead of Nullable&lt;bool&gt;</li>\r\n<li>use const for bufferLength&nbsp;</li>\r\n<li>leave the &lt;use... in remarks on same line so resharper can check method name</li>\r\n<li>remove &quot;else&quot;&nbsp; after &quot;return&quot; aborts from method&nbsp;&nbsp;&nbsp;</li>\r\n<li>use lambda in EntryFileNames prop: (e) =&gt; e.FileName&nbsp; instead of (e)=&gt; { return e.FileName; }</li>\r\n</ul>\r\n<p>&nbsp;&nbsp; Moshe</p>",
    "PostedDate": "2009-07-21T03:09:11.433-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "214249",
    "ThreadId": "63048",
    "Html": "<p>no, I don't have resharper.&nbsp; Thanks for the analysis.</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-07-21T04:41:52.82-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "214256",
    "ThreadId": "63048",
    "Html": "<p>I looked at the code.</p>\r\n<p>The possible null is not a problem.&nbsp; The &quot;wrong argumentexception parameter&quot; is a valid problem.</p>\r\n<p>The unused integer is also a good catch - I've removed that.&nbsp; And I've removed the redundant declarations on the partial class.</p>\r\n<p>As for the style suggestions - most of those are good.&nbsp;</p>",
    "PostedDate": "2009-07-21T04:59:43.35-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "214720",
    "ThreadId": "63048",
    "Html": "<p>Its a great tool.&nbsp;</p>\r\n<p>Once I'm able to compile, I'll continue the style discussion ...</p>\r\n<p>I'm not able to compile the Zip Full DLL - but don't really understand how that project works in the first place:<br>It tries to merge the CF projects and says that the pfx key is missing.<br>But I had previously <strong>removed </strong>the CF projects from the solution, since I don't wish to work on them, <br>and unmarked &quot;sign the assembly&quot; in all the other projects, and changed the references to use the &quot;project&quot; created DLLs, instead of the signed ones.<br>ZLib, ZLibTest, 'Zip partial' and 'Zip reduced' all build OK.</p>\r\n<p>I did not find any reference to the CF projects in the Zip Full project: No build events, and the two references are to the projects, <br>which as I said compile OK. <br><br>Do you have any idea, how or why the Zip Full DLL is merging the CF files? No mention of them in the project properties!<br>Also, when building the '<strong>Zip Tests', </strong>it tries to build (merge) the Zip Full DLL, which fails as above?</p>\r\n<p>Is Ionic.CopyData part of the problem?&nbsp; ...Which project creates that?</p>\r\n<p>Without compiling the Full DLL I cannot change the Zip Tests test configuration file, because I have no DLL to give it...</p>\r\n<p>Yours, Moshe</p>",
    "PostedDate": "2009-07-22T04:12:38.33-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "214739",
    "ThreadId": "63048",
    "Html": "<p>OK, VS search box won't give result for project files, even if I say file type *.*</p>\r\n<p>So opening the Zip Full DLL .csproj file in notepad showed me the culprit ILMerge calls.</p>\r\n<p>I'll see if I know how to fix that.</p>",
    "PostedDate": "2009-07-22T05:45:12-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "214777",
    "ThreadId": "63048",
    "Html": "<p>Ionic.CopyData is used during the running of tests.&nbsp; It is not used in the Full DLL.&nbsp; The CopyData dll should be included in the &quot;Zip tests\\Resources&quot; directory.</p>\r\n<p>DotNetZip uses ILMerge to merge multiple assemblies into one.&nbsp; The goal is to allow flexibility in deployment:</p>\r\n<ul>\r\n<li>the ZLIB logic can be deployed in a single DLL</li>\r\n<li>the DotNetZip logic, which requires ZLIB, can be deployed in a single DLL</li>\r\n</ul>\r\n<p>There is no &quot;ILMerge&quot; step defined in Visual Studio, so it is done as a custom build step, in two projects:&nbsp; ZIP Full DLL and ZIP CF Full Dll.&nbsp;&nbsp;</p>\r\n<p>In each case, ILMerge signs the resulting merged assembly with the .pfx file, which of course you don't have.&nbsp;&nbsp; I think you just need to remove the PFX file from the ILMerge command line to avoid problems.</p>",
    "PostedDate": "2009-07-22T07:25:58.053-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "214957",
    "ThreadId": "63048",
    "Html": "<p>Thanks for the answer!<br><br>By the way, I think that the ILMerge steps could be defined in the Build Events (before and after), of the project, and then would be viewable by the VS,<br>and would also enable easier debugging, when the build fails.</p>\r\n<p>I didn't have the time to pursue.&nbsp; I hope I'll get to it tomorrow.&nbsp;</p>",
    "PostedDate": "2009-07-22T13:29:44.453-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "216126",
    "ThreadId": "63048",
    "Html": "<p>Do you have any idea how I can build without the CF projects?</p>",
    "PostedDate": "2009-07-26T03:26:08.307-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "216137",
    "ThreadId": "63048",
    "Html": "<p>pashute forgot to mention that Resharper is free for open source developers :)</p>",
    "PostedDate": "2009-07-26T05:56:24.077-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "216139",
    "ThreadId": "63048",
    "Html": "<p>To build without the CF projects, you could just remove them.&nbsp;&nbsp;&nbsp;&nbsp; ??&nbsp;</p>",
    "PostedDate": "2009-07-26T06:11:11.763-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "222506",
    "ThreadId": "63048",
    "Html": "<p>Well, that's what I did. Just removed them. <br>And then got all those build errors from the ILMerge :-(</p>\r\n<p>&nbsp;</p>\r\n<p>And Mark Hor was correct!!&nbsp; Resharper <strong>is </strong>free for open source projects:<br>http://www.jetbrains.com/resharper/buy/opensource_license.html&nbsp;</p>\r\n<p>I thought he was joking (with the smiley at the end of his message)</p>",
    "PostedDate": "2009-08-12T06:46:05.277-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "222527",
    "ThreadId": "63048",
    "Html": "<p>Thanks for pointing that out about Resharper.</p>\r\n<p>The ILMerge performed by the Zip Full DLL.csproj does not merge CF DLLs.&nbsp;</p>\r\n<p>Maybe you haven't removed all the CF projects?&nbsp; There is&nbsp; &quot;ZIP CF Full DLL&quot; project that performs ILMerge on the CF dlls.&nbsp; This will obviously fail if you have removed some of the CF projects.&nbsp; But if you have removed all the CF projects then you don't have &quot;ZIP CF Full DLL&quot;.</p>\r\n<p>I just tried this and it works here.</p>\r\n<ul>\r\n<li>remove all CF projects and references to same, from the .sln file</li>\r\n<li>remove all mention of Ionic.pfx from the various .csproj files</li>\r\n</ul>\r\n<p>The resulting solution builds, successfully, EXCEPT, there are missing resource directories, which cause WinFormsExample to fail to build, and the Zip Tests fail to build.&nbsp; Hmmm...&nbsp; That's a problem.&nbsp; But not the problem you are having. I''ll fix that separately.</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-08-12T07:15:37.083-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "222528",
    "ThreadId": "63048",
    "Html": "This discussion has been copied to a work item. Click <a href=\"http://dotnetzip.codeplex.com/WorkItem/View.aspx?WorkItemId=8461\">here</a> to go to the work item and continue the discussion.",
    "PostedDate": "2009-08-12T07:16:48.093-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "222560",
    "ThreadId": "63048",
    "Html": "<div dir=ltr>OK, so could you tell me when you change those.<br>Meanwhile besides the test and example, do I get a working DLL so I can try out myself?<br>(In which case I'll add the NULLSTREAM stuff for discovering zip size)<br>\r\n<br>Thanks, Moshe<br><br><br>On Wed, Aug 12, 2009 at 5:15 PM, Cheeso <span dir=ltr>&lt;<a href=\"mailto:notifications@codeplex.com\">notifications@codeplex.com</a>&gt;</span> wrote:<br><div><blockquote style=\"margin:0pt 0pt 0pt 0.8ex;padding-left:1ex\">\r\n   <div> <p>From: Cheeso</p> <div><p>Thanks for pointing that out about Resharper.</p>\r\n<p>The ILMerge performed by the Zip Full DLL.csproj does not merge CF DLLs. </p>\r\n<p>Maybe you haven't removed all the CF projects?  There is  &quot;ZIP CF Full DLL&quot; project that performs ILMerge on the CF dlls.  This will obviously fail if you have removed some of the CF projects.  But if you have removed all the CF projects then you don't have &quot;ZIP CF Full DLL&quot;.</p>\r\n\r\n<p>I just tried this and it works here.</p>\r\n<ul>\r\n<li>remove all CF projects and references to same, from the .sln file</li>\r\n<li>remove all mention of Ionic.pfx from the various .csproj files</li>\r\n</ul>\r\n<p>The resulting solution builds, successfully, EXCEPT, there are missing resource directories, which cause WinFormsExample to fail to build, and the Zip Tests fail to build.  Hmmm...  That's a problem.  But not the problem you are having. I''ll fix that separately.</p>\r\n\r\n<p> </p></div><div> <div> <p>Read the <a href=\"http://dotnetzip.codeplex.com/Thread/View.aspx?ThreadId=63048&ANCHOR#Post222527\">full discussion online</a>.</p> <p>To add a post to this discussion, reply to this email (<a href=\"mailto:DotNetZip@discussions.codeplex.com?subject=[DotNetZip:63048]\">DotNetZip@discussions.codeplex.com</a>)</p>\r\n <p>To start a new discussion for this project, email <a href=\"mailto:DotNetZip@discussions.codeplex.com\">DotNetZip@discussions.codeplex.com</a></p> <p>You are receiving this email because you subscribed to this discussion on CodePlex. You can <a href=\"http://www.codeplex.com/site/discussions/thread/unsubscribe/63048\">unsubscribe</a> on codePlex.com.</p>\r\n <p>Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at <a href=\"http://codeplex.com\">codeplex.com</a></p> </div> </div></div> </blockquote>\r\n</div><br></div>",
    "PostedDate": "2009-08-12T08:22:32.133-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "222607",
    "ThreadId": "63048",
    "Html": "<p>&gt; OK, so could you tell me when you change those.</p>\r\n<p>I'll update the workitem when I check-in a change for the missing &quot;Resources&quot; directories.</p>\r\n<p>&nbsp;</p>\r\n<p>&gt;&nbsp;Meanwhile besides the test and example, do I get a working DLL so I can try out myself? (In which case I'll add the NULLSTREAM stuff for discovering zip size)</p>\r\n<p>Yes, you will get a bunch of DLLs from a .sln modified this way. Yank out all the CF projects, and you'll be able to build Ionic.Zip.Reduced.dll, Ionic.Zip.Partial.dll Ionic.Zip.dll, Ionic.Zlib.dll, and all&nbsp; of the example applications, except for the WinForms example which is missing a Resources directory.</p>",
    "PostedDate": "2009-08-12T10:02:04.767-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "223731",
    "ThreadId": "63048",
    "Html": "<p>Just FYI, I did a bunch of FxCopy cleanup in the source, lots of changes.&nbsp; Thanks for reminding me about this.&nbsp;</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-08-14T16:04:38.813-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "229746",
    "ThreadId": "63048",
    "Html": "<p>Great job!</p>\r\n<p>First of all, in 1.8.4.22 there is no SNK or PFX. So I only had to remove the 3 CF's.<br>ZLib compiles and builds OK.<br>Zip Partial DLL builds OK too.</p>\r\n<p>Now the problem is that the <em>Zip Full </em>DLL is not building, so I don't get  Ionic.Zip.dll.</p>\r\n<p>The message is :</p>\r\n<p>&nbsp; ...Ilmerge.exe /t:library /xmldocs/out:&quot;obj\\Debug\\Ionic.Zip.dll&quot; &quot;c:\\path to zip\\Zip Partial DLL\\bin\\Debug\\Ionic.Zip.Partial.dll&quot; &quot;c:\\path to zip\\Zlib\\bin\\Debug\\Ionic.Zlib.dll&quot; <br>&nbsp; Exited with code 3.<br><br>Any ideas?</p>",
    "PostedDate": "2009-09-01T08:31:19.917-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "229760",
    "ThreadId": "63048",
    "Html": "<p>do you have ilmerge installed?</p>\r\n<p>Did you download ilmerge and install it?</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-09-01T09:08:54.233-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "230130",
    "ThreadId": "63048",
    "Html": "<p>oi! <a href=\"http://www.youtube.com/watch?v=4NV80ldBXw4\">ouch</a>!&nbsp;</p>\r\n<p>:'''(</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-09-02T04:18:36.847-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]