Sep 292011

One of the newly discovered features of RAD Studio XE2 is the ability to have a separate manifest for each build platform as well as the ability to more easily include your own custom manifests.

In XE, D2010, D2009, D2007, the IDE’s added the ability to check an option to include runtime themes.  This created a manifest file that was embeded into the EXE on build.  The manifest was primative and mainly dealt with the inclusion of requiring the ComCtrls 6 to leverage the improved appearance of controls.  The problem with the manifest is that it did not allow for the inclusion of the necessary items for Vista and Windows 7, such as elevation requirements.

The workaround was to disable runtime themes and then create your own manifest file. Then you would create a resource file that included the manifest.  Then you would add a $R pointing to the resource file in the project source to load in the manifest.  Depending on your tact, you may need to use the MSBUILD options to compile the resource before compiling the application. (Pre event).

With XE2’s new ability to build a 32 bit or 64 bit application, this created a problem.  The manifests could potentially be different if you are doing a side-by-side manifest using Type Library / ActiveX controls and need to include the appropriate manifest details for the controls to prevent having to use REGSVR32 on the end user’s machine for the controls.

In XE2, the gang in Scotts Valley did an awesome job in setting up project options for this situation.  First off, each platform has it’s own settings for build settings as well as the option to use run-time themes, no manifest or (THANK YOU THANK YOU [about time] THANK YOU) point to a custom manifest. So now, you can create a PROGRAMMANIFEST.MANIFEST file that can be compiled into the 32 bit and a PROGRAM MANIFEST64.MANIFEST to be compiled into the 64 bit application, each with their own manifests covering their particular needs.