====== Pre-Packaging Checklist ====== ===== PortableApp Icons ====== The appicon.ico included with your PortableApp needs to have a minimum of six icons inside it in various bit depths and sizes -- 256 color & XP alpha in 16px, 32px, and 48px sizes. //"I'm a programmer, not an artist!"// you say to yourself. So how do you check your appicon.ico to see if it has all those formats in it? The best program I've found (so far) is the freeware app [[http://www.towofu.net/soft/e-aicon.php|@icon sushi]]. Run @icon sushi and drag-n-drop your appicon.ico file in the left pane to see what icons it contains. 256 color icons are 8bit and XP alpha icons are 32bit and are shown in the "Color Depth" column. The following screenshot shows you the minimum number of icons (six) needed to comply with PortableApps developer standards at the two bit depths and three sizes. {{ss-icon_sushi1.png|}} @icon sushi can also create icons or add sizes/bit depths to existing icons by importing png or bmp files and converting them to icons. ===== Directory Cleanup ====== Before you package your app you need to clean up any stray Thumbs.db files within your app's directory structure. Open a command prompt and navigate to the root directory of the app you're going to package and run the following command: del Thumbs.db /F /S This will recurse through all subdirectories (/S switch) and delete all Thumbs.db files including any that may be read only (/F switch). ===== Cloning Cleanup ====== Most of the launchers are based on code for a previous working launcher. (Why reinvent the wheel?) The problem is that references to the previous application are frequently left around. You can search for them with the Gnu [[http://gnuwin32.sourceforge.net/packages/grep.htm|grep]] program. From a command prompt, navigate to the root directory of the app you are working on and run the following: grep -Ri Previous where "Previous" is some word or phrase that would be found in the previous package, but shouldn't be in the current one. The "R" means to recurse subdirectories, and the "i" means to ignore the difference between upper- and lower-case letters. If you must include a space in the phrase you are searching for, include the phrase in quotes. This command doesn't change the references, just gives you a checklist to work on. There are several other programs you can use for this. Many have "grep" in their name. Agent Ransack is one that doesn't, but is free and quite capable. === Alternate Method === The search method illustrated above can be accomplished without having to download new software. Open up a command prompt in the root directory of the portable app you want to check and type in the following command: findstr /I /S /P /N /A:9f /C:"Previous" *.* where (once again) "Previous" is some word or phrase that would be found in the previous package, but shouldn't be in the current one. For an explanation of the switches used, see [[http://www.ss64.com/nt/findstr.html|findstr]] and [[http://www.ss64.com/nt/color.html|color]] @ ss64.com The name of the file that contains the string searched for along with the line it appears on will appear in the command prompt in white text on a blue background.