Thanks Christopher,

That is what I expected too (for install package to be smaller) but,
apparently, InstallShield is still running a tight ship and/or I am
still missing something important since my MSI is  still slightly larger
than IS exe package and (I believe that) I did almost everything that
you suggested.

I have literally rewritten existing InstallScript code into Win32 C++
(striving for a minimum size/dependency) and removed all IS script
dialog handling. Dialogs were done starting with Mondo and adding a few
extra dialogs.

I have no dependency on .NET and my CA DLLs, that encapsulate what used
to be IS script, use minimal, if any, C/C++ runtime. For example, I am
working with wsformat, lstrcpy and lstcat, just to avoid pulling in any
string-related code from C runtime. C runtime is linked statically. The
rest is basically a lot of pure Win32 API registry and folder/file
management code, with some COM calls. After all, IS script is just a
slightly higher-level Win32 API code. I think that my reimplementation
should be smaller than any script+interpreter combination.

I went with many small, instead if one large CA DLL, reasoning like
this:
- calling a deferred CA means that DLL gets stored in the install
script, sent over to the server and then run by the server. If multiple
deferred CAs are done like functions exported from a single DLL, several
copies of the same and larger DLL will be present in install script.
Even for immediate actions DLL gets extracted to a temporary location
and then run.

I think that IS size advantage may be, in part, in further compressing
custom action DLLs and support DLLs. My support DLLs (these get
extracted at the very beginning of installation by a CA and are
available to the rest of CA code - it is, in essence, CA shared code)
take about 5 MB. 


-----Original Message-----
From: Christopher Painter [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 26, 2008 3:22 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] The size of compressed Wix install
comparedtoInstallShield equivalent

My memory is that a Basic MSI project with a bunch of exported
InstallScript functions will compile and get linked into a single DLL
with a bunch of exported functions like f1, f2, f3,f4  ectera.     So
the IScript runtime penalty should only be once.   If you used merge
modules and had installscript CA's then those would be compiled at
different layers and the package bloat would increase.

Do you have a dependency on the .NET Framework?  Porting your code from
InstallScript to C# ( or C++ if you are really inclinded ) would cut
down on the size alot.

Also if you dump the InstallShield UI and bring in Mondo and perhaps
refactor any InstallScript standard paterns ( IIS,XML....) into WiX
Standard CA / Extensions then that should help also.

In general, I would believe that a `properly designed`  WiX package
should actually be considerably smaller then an InstallShield package.


Christopher Painter, Author of Deployment Engineering Blog
Have a hot tip, know a secret or read a really good thread that deserves
attention? E-Mail Me


--- On Thu, 6/26/08, Tony Juricic <[EMAIL PROTECTED]> wrote:

> From: Tony Juricic <[EMAIL PROTECTED]>
> Subject: Re: [WiX-users] The size of compressed Wix install comparedto
InstallShield equivalent
> To: "General discussion for Windows Installer XML toolset."
<wix-users@lists.sourceforge.net>
> Date: Thursday, June 26, 2008, 1:42 PM
> Yep, that was it, thanks Jason!
> 
> High compression shaved of 10 Mb and I accounted for the
> remaining 10
> MB. My billboard bitmaps took only 3MB but Custom Action
> Dlls, while
> each smaller than half a megabyte, turned out to be
> numerous enough to
> take up to 7 MBs.
> 
> I assume that a bunch of small DLLs that export a single
> function (for a
> single CA) is better than having a single larger Dll that
> would have an
> exported functions for each custom action. Said that, I
> don't think I
> would save much space by putting all the code in one Dll
> anyway.
> 
> -----Original Message-----
> From: Jason Ginchereau [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, June 26, 2008 11:35 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] The size of compressed Wix install
> comparedto
> InstallShield equivalent
> 
> You can try passing the high compression (-dcl:hi) switch
> to light, or
> setting CompressionLevel="high" on your
> <Media> element. WiX by default
> uses a moderate compression level which provides much
> faster builds but
> is slightly less optimal. However, I doubt that increasing
> the
> compression level will make up that 20MB difference.
> 
> Do you have any large bitmaps, custom action binaries, or
> other
> resources in the Binary table of the MSI? Those items
> don't get
> compressed when they're packed in the MSI, though they
> would when the
> MSI is further wrapped in an EXE as InstallShield does. If
> you do have
> large .BMP files, you can change them to .JPG or .PNG
> format.
> 
> Beyond that I have to ask the obvious question: are you
> sure the set of
> payload files is the same?
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf
> Of Tony
> Juricic
> Sent: Thursday, June 26, 2008 8:14 AM
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] The size of compressed Wix install
> compared to
> InstallShield equivalent
> 
> I have ported InstallShield (version 12) project to Wix 3.
> InstallShield
> has msi embedded in exe and the whole setup.exe is 50 MB
> large. Wix
> creates MSI with embedded compressed CAB which takes 70 MB.
> 
> 20 MB is a pretty large difference! Am I missing something
> obvious or is
> InstallShield compression really that superior?
> 
> Thanks
> 
> 
> 
> 
> 
>
------------------------------------------------------------------------
-
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users


      



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to