I just spent a couple hours getting the /postsql switch to work on an .exe created with Packager. It worked fine for one script but not another, so I went digging. I found that the code template has a method RunSQLFile(string,string) that reads an sql file, chops it into batches using "GO" statements and calls the ExecuteSQLCommand(string) method.
I removed all the GO statements from my query, but no real change in output or functionality. I did some debugging on RunSQLFile and discovered it was still finding a "GO" somehow! Turns out the script had a GOTO statement on a newline, which matches "\\r\\nGO" perfectly. Thus, it was detecting a batch that didn't exist.
The workaround is fairly simple. I can just prevent my GOTO from matching "\\r\\nGO" by inserting white-space or by putting the GOTO at the end of the previous line.
In my own sql script processing library, I use "\\r\\nGO\\r\\n", but I don't know if that's always appropriate. Also, specifically stating that GO is used to breakup the script into batches would be helpful to have documented somewhere - maybe on the info tab of the resulting .exe or maybe in the help embedded in sqlpackager.exe available from the command line.
I hope this helps make a great tool even better.