Platform Builder: Removing the Version Information from the Desktop

Posted by Bruce Eitman on Geeks with Blogs See other posts from Geeks with Blogs or by Bruce Eitman
Published on Thu, 04 Mar 2010 19:34:11 GMT Indexed on 2010/03/07 23:28 UTC
Read the original article Hit count: 542

Filed under:
The question of how to remove the version information from the desktop has been around for a long time. It came up again today. The question is about the string displayed on the desktop that looks like one of these, depending on the OS verison:
Windows Embedded CE v6.00 (Build xxxx on xxxx)
Microsoft Windows CE v5.00 (Build xxxx on xxxx)
Microsoft Windows CE .NET v4.20 (Build xxxx on xxxx)
I have looked into this in the past, but never really had a definitive answer. I have an answer now. The short answer is that the version information is displayed if the code is built without SHIP_BUILD defined. 
I have to be honest, I have given this answer in the newsgroups in the past, but I still had questions. My questions have come from different build machines giving different results.   I have noticed that some engineer’s workstations would have the version information displayed, while others did not. I always stopped short of spending time investigating further because our release build machines never resulted in the version information being displayed. But, we do not typically define SHIP_BUILD for our releases because our customers want or need the debug output.
So today I dug further into the question. The answer is actually quite simple. Microsoft builds the retail shell libraries with SHIP_BUILD defined and releases the libraries with Platform Builder. Normally the source code does not need to be built during Sysgen, so the libraries that Microsoft delivered are linked to create the Explorer shell. So typically the Explorer shell displays the version information for debug builds, but does not for retail builds.
The trouble comes when the source code is forced to be rebuilt for a retail build. This might happen if an engineer uses “Build and Sysgen” or builds the Public\Shell folder from the command line with the clean flag. I am not sure if Build and Sysgen will cause the problem or not – I have never used Build and Sysgen and I strongly advise against using it (see Platform Builder: Don’t use Build and Sysgen)
Copyright © 2010 – Bruce Eitman
All Rights Reserved

© Geeks with Blogs or respective owner