Dal blog di Bill McCarty apprendo l'esistenza di questa dll che permette di zippare/unzippare files in modo elementare.
Affinchè si possa referenziare da VisualStudio è necessario disabilitare il viewer delle assembly presenti nella GAC aggiungendo questa voce nel registry:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Fusion]
"DisableCacheViewer"=dword:00000001
Fatto questo referenziate la dll presente in C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Zip ( Zip.9.0 se avete VS2008) e usate le classi ZipFileCompressor/ZipFileDecompressor.
Esempio:
string[] files = Directory.GetFiles(@"c:\foo").Where(f=>f.EndsWith("jpg")).Select(f => new DirectoryInfo(f).Name).ToArray();
ZipFileCompressor afc = new ZipFileCompressor(@"c:\foo\bar\myfile.zip",@"c:\foo",files,true);
Non è ancora chiaro se questa dll può essere o meno distribuita, sta di fatto che per utilities interne può essere decisamente comoda.