Zip Source and Add to MSI |
You can tell MAKEMSI to zip up source code and add it to the "Binary" table by default or another table as specified. The "_Streams" table can be used to make it less visible to the average "sticky beak" (and the files can be password protected if desired). Note that th password protection can be bypassed relatively easily if someone is determined.
Normally this doesn't add significantly to the size of an MSI and this process can be thought of as a form of insurance...
The files to be zipped are any that are defined as "samples" (note that sample collection doesn't need to be on).
Any source icons, graphics and files don't need to be zipped as they can easily be extracted using the "Export to .IDT" option (which can also extract the zipped source code).
This option is off by default. To enable it you will need to download the freeware info zip's "zip.exe" program (http://www.info-zip.org/") and configure MAKEMSI (see the "MAKEMSI_INFOZIP.EXE" macro).
If you are releasing a commercial MSI you may not want to do this but for internal MSIs (deployed within your company) it can be useful to cover some source code management issues (a safety net).
Available Options |
Please see the "options for commands" section of the manual.
#define? COMMONFRAMEWORK_ZIP_SOURCE_FOR_BACKUP Y ;;Y/N (if "Y" then use info-zip (izip.exe) to zip source code) #define? COMMONFRAMEWORK_ZIPPED_SOURCE_KEY SourceCodeBackup.zip ;;Name of extracted ZIP (as well as "Binary" resource) #define? COMMONFRAMEWORK_ZIP_SOURCE_BACKUP_PASSWORD ;;Empty if no password wanted or specify desired password (NOTE make sure the info zip version you are using supports encryption before setting a password!) #define? COMMONFRAMEWORK_ZIP_SOURCE_BACKUP_ZIP_OPTIONS -9 -j -o ;;Max compression, no path #define? COMMONFRAMEWORK_ZIPPED_SOURCE_TABLE Binary ;;Put into what table ("_Streams" would "hide" it)? #define? COMMONFRAMEWORK_ZIPPED_SOURCE_INCLUDES_FILELIST Y ;;Want the list of files added? (contains full source path information which may be useful) #define? COMMONFRAMEWORK_ZIPSRC_OUTPUT_COLOR {CYAN} ;;Output of the zipping process.. #define? COMMONFRAMEWORK_INFO_MSG_ZIPPING Zipping source - {$Count} file(s)... ;;Empty = no message #define? COMMONFRAMEWORK_INFO_MSG_ZIPPED Adding ZIP ({$Size} bytes) to the "{$Table}" table... ;;Empty = no message
Extra Files |
You can specify extra files you would like zipped up as well, perhaps source code for a tool you are packaging, the following demonstrates how to do it:
<$CommonFramework-ZipThisSource "sourcecode\Source4Fred.EXE.zip">