I have recently installed SP1 for Visual Studio 2005, and have found that the Windows Mobile 5.0 executable I'm building has grown quite significantly:
- Pre SP1: exe size was 4.10 MB
- Post SP1 : exe size is 4.82 MB
Nothing else has changed that would account for this difference.
I wondered if this change in size might be due to different handling of compiler settings, e.g. C++ exception handling being turned off pre SP1, and now being turned on (I found in previous experiments that C++ EH can bloat the exe by about this amount). However I've inspected the settings carefully and I don't think SP1 has turned C++ EH on in my project settings -- and no amount of tweaking the settings will shrink the exe back its former size.
Has anyone experienced similar exe bloat since installing SP1 Or can anyone offer any suggestions as to how I can work around this
Thanks,
Rob.

Windows Mobile 5.0 executable 20% larger after installing VS 2005 SP1
Adysoft
Oops! It turns out I was wrong about SP1 being the culprit. In fact, the increase in exe size resulted from a change to our project settings, to generate debug info (Program Database format). Coincidentally, this change was made at about the same time we moved to SP1, and I wrongly attributed the exe bloat to SP1.
I had assumed that debug info sat "outside" the exe in the PDB file, and am surprised that it has also inflated the exe file by this amount. Is this the expected behaviour Is there any way I can have my cake and eat it too, i.e. have debug symbols on hand for when a customer sends in a crash dump, but have my executable as lean and mean as possible
Thanks,
Rob.
David McGraw
In case anyone is interested, I've found out why my release executable got larger after enabling debug info. The answer relates to the linker optimization setting called "References", which can have three values: "Default", "Keep Unreferenced Data (/OPT:NOREF)", or "Eliminate Unreferenced Data (/OPT:REF)". The meaning of "Default" changes depending on the value of the "Generate Debug Info" setting. If debug info is disable, then "References"="Default" means /OPT:REF (i.e. this optimization is enabled). If debug info is enable, then "References"="Default" means /OPT:NOREF (i.e. this optimization is disabled). In order to re-enable this optimization, and return the exe to its original size, you have to explicitly set "References"="Eliminate Unreferenced Data (/OPT:REF)".