Get the new PortableApps.com Platform 10.0: Gorgeous themes, a full portable app store and advanced functionality
Announcing the World's Best Flash Drive: The PortableApps.com Companion | Did you see a malware warning on Friday?

Creating A Portable App: A Guerilla Field Guide

OliverK's picture
OliverK
Developer
(Homepage) - July 31, 2008 - 7:42pm

Introduction:Often, somebody will make a post asking for help. I wrote up a guide real quick for this poster, here. After a suggestion by r-andom, I re-posted as a forum topic. If you have a suggestion for the guide, post here. If you need help portablizing, make a new post in the Portable App Development Forum. So, without much more text, I loose the gorilla. . .

  1. Use the search box to find out if someone's done the work or some of the work for you. Search PortableApps.com.
  2. Become familiar with the launchers available. For instance:
  3. Determine the license. Is it OSS or another type of license? If its Open Source Software, you can post all of the launcher and the program on the forums. Since PortableApps.com is dedicated to OpenSource software, its against the forum rules to post a piece of software that contains closed source (even if you are allowed to redistribute) software. If its closed source, well, you can post a launcher, similar to what I've done here, only. Why is this first? Well, you have to decide if its worth the work.
  4. Determine the programing language. Why? Well, you have to be careful. Is it done in:
    • .Net? Sorry. While some don't care, alot of people here despise .Net, as its not installed on all computers. See this link For a whole discussion on the subject of .Net.
    • Java? As I understand there's the Java Portablizer, but there is not yet an Open Source JRE. So use of Java applications is somehow limited.
      You can study the following application to get an idea of portable Java implementation.

  5. Get the tools. Load up- you'll need them.
    • I whole heartedly suggest the use of HM NIS Edit (Portable) Select either the download with NSIS included, if you don't intend to download it separately, or without if you do. It adjusts properly in both occasions.
    • Note also if you wish to use another editor, you can download a portable version of NSIS separately, from here.
    • Regshot. which is used to figure out what changes a program made during the install process.
    • Alternately, you can use Process Monitor to figure out what registry entries its reading.
    • NirSoft RegfromApp is a small freeware utility that allows you to specify a specific process to monitor. You can even launch a process with it and monitor those specifically. It produces a nicer output of what registry entries the program has modified.
    • I also suggest picking up Notepad ++ Portable. Just in case.
    • To handle making the icons, use something like IcoFx
  6. Do your research. Read up on these topics in the forums:

    Feel your head is about to explode? Mine to, writing all this html. There's more Laughing out loud

  7. Download your program. If you have keyboard loggers, malware protection or anything that runs in the background, consider turning them off before taking a regshot. Now, fire up regshot and take a regshot of the computer by scanning the C drive, more on that in a minute, before installation. Go have a cup of coffee or a can of Mountain Dew. Don't touch the computer! You'll get extra registry entries.
  8. Install your program and run it a couple of times. Make sure you do this from a clean install. If you don't, you may have skewed results. Do NOTHING else during this time
  9. Take second regshot and then compare the results. Save it a html, it produces a nicer printout then .txt
  10. Figure out where the program is saving files. Check C:/Documents and Settings/UserName/Application Data for %appdata%. If you scan the entire C:\ Drive with regshot, those changes should show up.
  11. What to do with registry entries:
    • HKCU:Regshot will show a HCKU modification as HKU\Random Numbers\whatever. Look for those in HKCU\Software\ and handle them in NSIS as HKEY_CURRENT_USER\Software\Whatever.

      • Useful Entry: HKU\S-1-5-21-1060284298-823518204-725345543-1003\Software\Texas Instruments\TI Connect\StartUp\.
      • Useless: HKU\S-1-5-21-1060284298-823518204-725345543-1003\Software\Microsoft\Windows\ShellNoRoam\MUICache
    • HKLM:HKLM is a branch of the registry that cannot be modified by someone with a Limited account- just an Administrator. Handle them by double checking that they are needed. Often, something like InstallDir: whatever can be ignored. Else-if those entries really really are needed, you will need to check that the launcher can do it, then launch the software. If you don't have the rights, you'll use a message box to say so and terminate the launcher. Handle them in NSIS as HKEY_LOCAL_MACHINE\Software\whatever
    • HKU: You can ignore these.
  12. Find a base launcher that deals with those issues.
  13. Adjust the launcher to reflect the changes you need made
  14. Compile, test, and adjust
  15. When it works, drop a note with it in the Beta Testing Forum., using this format. Let us have at it. We'll be glad to Laughing out loud

Well, that about sums it up.

More General Help
Open Source Software is generally found at SourceForge
You can get general help here
If you have any specific questions, give post, and we'll be happy to help.
You can also join us at #portableapps on irc.freenode.net. You'll need a IRC client. You can use X-Chat, Pidgin, or Miranda. Helpful hints are here. Don't want to download a full blown IRC client? Well, I'm sure you will eventually, but here's a web based IRC client that's fast.

Thanks to . . .
r-andom, for his blurb on java\
MaienM and Bart.S for letting me know about those pesky updates

Changelog

  1. 10SEP08
    • Updated a few spelling issues
    • Added NirSoft RegfromApp
    • Updated link to installer thread
    • Changed up the way registry was talked about, added examples
  2. 08APR09
    • Add NSIS Portable to the Tools List
  3. 02OCT09
    • Add examples of Portable Java implementation
    • Update links to the PA.com format, Installer
    • Update link to NSIS Portable

( categories: )

[MOD] Please make sticky

Good work!

This post answers a lot of the repeating questions in this forum. Can a moderator please make this sticky?

(you may delete my comment afterwards.)

Stick it!!!!!!!!!!!!!!!!!!!!!

That is a freakin' awesome tut!

Sticky it!

It even inspired me to start and try to make a portable app (unfortunately I am lazy and it may not happen Sticking out tongue ).

Very good tut Oliver.

#tuna { color: silver; smell: delicious; }

Sticky it!

Sticky it!
This is great!

Great write up Oliver. This

Great write up Oliver. This should help out quite a bit.

The developer formerly known as ZGitRDun8705

Sounds perfect!

Now as soon as I film my hand plugging in my new flash drive (which is supposed to come today! AAH!!! I CAN'T ENDURE IT MUCH LONGER!!!!!), I'll get started on a video with some cool music.

Insert original signature here with Greasemonkey Script.

This is awesome! It's totally

This is awesome! It's totally perfect for newbies for portabalizing apps (like me) or just a great reference.
Thanks for writin' this up!

There's no place like 127.0.0.1

Thanks for the reference to my IRC widget...

It's nice to get people mentioning/using it Smiling

I believe that .Net is .Net, not .net.

I find HM NIS Edit good for gooey stuff Sticking out tongue, but not for code editing. I use GVim for pretty much all coding I ever do. (/me presses escape, :w, enter - save, for you people that don't use [G]Vi[m] Sticking out tongue)

Also, X-Chat is X-Chat, not XChat (as you list it in your first link). My understanding is that there was a problem with X-Chat, and some crazy guy illegally sold fixed copies of it as XChat, with closed source components, etc., violating the GPL. Ask Patrick for more details.

Another thing: SourceForge, not Source Forge.

Oh, and Notepad++, not Notepad ++

One last thing: the search PortableApps.com link should point to http://portableapps.com/search/node, not http://portableapps.com/search... it doesn't really matter, but I like picking nits Laughing out loud

Why is this so fun..?

STOP SUBMIT! (Somewhat like stop press?) You have an "its" without an apostrophe between the t and the s, where there should be one, because it is an abbreviation of "it is"! Shocked

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

no prob on the mibbit. Your

no prob on the mibbit. Your right about those errors. I'll fix them when I get a better connection.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

First, great guide...

I'm a big proponent of offering people guidance so that they can jump in and help where they can!
But I have a serious question:
What are steps 15, 16, etc?
That is, once an app has been portablized and makes it into the Beta Testing Forum, how does it achieve the last steps to become a final release Portable App?
What rights and responsibilities does the original (unofficial?) developer have to keep moving the app's development forward? How much testing is enough?
By a rough count, there are ~110 apps listed in the Development Test Releases on the Test Release page, some of which are out of date compared to their parent app. Meanwhile, most of the releases are just new versions of existing apps.

Is their anything that us non-devs can do to help the process - perhaps if we knew what kind of feedback is expected when we beta test? Any tips from experienced testers to help in stressing apps, forcing out bugs, etc?

Thanks again to all the devs out there for making PortableApps such a great site.

When I find myself in times of trouble Mother Mary comes to me
Speaking words of wisdom, let it be.
And in my hour of darkness she is standing right in front of me
Speaking words of wisdom, let it be. Whisper words of wisdom, let it be.

Well, I wasn't to worried

Well, I wasn't to worried about 15 and 16. Basically, it'll sit in the forums for awhile.
When you become a developer, you need to support your app for 1-2 years (I believe it was).

When testing, you need to:

  • Give the computer OS. It important to know if its Vista, XP, or Wine.
  • Duplicate it. Honestly, it needs to be reproducable. And the more information you can give, the better.
  • Which development test versionm your using, make sure your up to date.
  • See if the installed version of the app has the bug. If it does, report that to the original app builders.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Thanks for the tips on testing.

Are devs waiting for a certain amount of positive (no bugs) feedback before release? I don't know how often satisfied beta testers communicate back to the devs...

When you say that a developer needs to support the app for 1-2 years, is that after it has reached Release status, or throughout the pre-release too?

When I find myself in times of trouble Mother Mary comes to me
Speaking words of wisdom, let it be.
And in my hour of darkness she is standing right in front of me
Speaking words of wisdom, let it be. Whisper words of wisdom, let it be.

I don't know. It when John

I don't know. It when John decides its ready. How that works, I haven't the foggiest.

Actualy, I was wrong. Its a 6 month support after release.
Here's what John wants.
http://portableapps.com/node/11772

I'm guessing, when you thinks its ready you post here, and John takes a look and says yeah or nay.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

@John T Haller:

@John T Haller:
Is there anyway you could make this sticky or tell me what you would want added to make it a sticky?

Thanks.
*EDIT*
UPDATED 22AUG08
Some info on RegHandling
Added IcoFx link

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Nicely done

Wow. Thanks OliverK. Your guide has convinced me that I just may be able to do this after all.

A suggestion...
Somewhere around step 7 you may want to recommend turning off or killing background processes before doing your Regshots. Folk running on-access malware scanners, defraggers, keyboard monitors, etc. may find themselves having to wade through a fair amount of registry garbage in order to find the relevant entries. (Though I guess if you run in a "development" image or sandbox this wouldn't be necessary.)

Anyway, thanks again.

I think

you are actually thinking about Process Monitor.
It tracks every file and registry handle from a given program.

Insert original signature here with Greasemonkey Script.

Yes, at which point you can

Yes, at which point you can filter it.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Too much on-access stuff...

I actually meant RegShot. I'm running VIPRE, Sunbelt's new A/V + A/S, and it's on-access scanner peppers the registry with newly created and deleted values. PerfectDisk drops a few in too. Not really a big deal since RegShot's html report makes it easy to see the changes that really matter. Just caught my eye.

Godd suggestion. I'll add

Godd suggestion. I'll add it.

And . . . your welcome!

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Hey,

great job Oliver, we've been needing something like this for a while. Smiling

[EDIT: In regards to #2, maybe you should add Eraser Portable for dealing with HKLM entries that need special permissions. I've seen a lot of people using the 7-zip method for HKLM.]

That's a good point. Thing

That's a good point. Thing about EraserPortable is that it doesn't actually need them. I'll tack in a note that HKLM keys are dealt with differently.

I deal with them by checking for admin rights. If the user doesn't have them, we go no farther.

I'm also play with this little toy: Nirsoft RegFromApp. Its not open source, but really slick. You fire it up, then select the process to run. It captures those keys-and you can save them. It displays them in the program. Everything that that program uses, it shows. I'm thinking of adding it to the top.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Great Guide :)

Now I'm really thinking about making my own portable apps Smiling

Some things:

  • Step 6: There is a link to the Offical Installer, but it points to an outdated one.
  • Step 11: Point a. says look for HKU\Random Numbers\whatever and Point c. says ignore HKU. I'm a bit confused now.

you're right. this should

you're right.
this should be:
HKCU\RandomNumbers\whatever
Most stuff stores info here

HKU can be ignored.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Actually,

Actually, HKU\RandomNumbers\something is worth looking for, then just replace HKU\RandomNumbers\ with HKCU\

There is no HKCU\RandomNumbers\ key

The developer formerly known as ZGitRDun8705

Hmmm, let me sum up.

HKU\Random Numbers\whatever is worth looking for, because there is no HKCU\RandomNumbers\whatever.
Right, but HKU\whatever can be ignored. Well, I'm still confused Sticking out tongue

HKU\RandumNumbers\ = HKCU\ If

HKU\RandumNumbers\ = HKCU\

If you use RegShot to look for which reg keys are modified, it will show them all under HKU\RandomNumbers\, but this key is unique to the PC. HKCU is universal. All instances of HKU\RandomNumbers\ should be replaced with HKCU\

The developer formerly known as ZGitRDun8705

Yeah,

I understand. But then I shouldn't ignore HKU in Regshot, at least partially Eye-wink
@ Oliver: Thanks for the examples!

Correct, don't ignore HKU in

Correct, don't ignore HKU in RegShot. unless it's something like Oliver said.

The developer formerly known as ZGitRDun8705

A tool that might help in the

A tool that might help in the monitoring of application would be Sandboxie. When a program is executed in the sandbox, all the modifications made by the application to the system are contained in the sandbox folder, as well as all the registry entries.

True, but I don't know how to

True, but I don't know how to use SandBoxie and prefer that I list portableapps when possible Laughing out loud

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

I need more detail explanation about step 12~14

I don't understand after step 11.
What is the launcher?
Compile What? How?

The launcher is the file

The launcher is the file called AppNamePortable.nsi in Other\Source. You compile it by downloading NSIS and the loading that file into what is called the compiler. Minute latter, you have a standalone executable.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Nice work!

Nice! But you should also mention having:

A) the app or
B) the installer

in a .ZIP or .RAR .

theg721

No

They're meant to be put in the .paf.exe format at the end (made by compiling the installer). If they're in ZIP or RAR or anything like that, they're not in the PortableApps.com™ Format.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

You might mention in your

You might mention in your Java section that BabilooPortable (dev test) is an example that shows one way to launch a Java "jar" file while redirecting it to save settings to the Portable Drive by using the

 -Duser.home=

command line option to javaw.exe.

Many programs can be set up to use a Java Virtual Machine or Java Runtime Environment that has been copied to the Portable Drive. While we can't easily distribute such a JVM/JRE ourselves, there is nothing that prevents a person from putting Sun's JVM/JRE on their Portable Drive and taking it with them.

Also note that some programs (e.g. Firefox) wouldn't use an OSS JVM/JRE even if we had one, at least not without changes. They access Java in a non-Portable way. I'd say that is the real problem with carrying your JVM/JRE with you, or with our trying to have a universal, OSS, portable Java.

MC

how about the inclusion of

how about the inclusion of NSISPortable to the tools list so that users who don't want to install NSIS locally could use this as an alternative

your friendly neighbourhood moderator Zach Thibeau

please

Create a video-instruction please (training video).

Creating a video instruction

Creating a video instruction would be some what difficult. I've attempted the videos, but never quite got them to satisfaction.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Done :D

Done Laughing out loud

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

creating portable apps

Hey guys try using this video
gr8 video

so simple

http://www.5min.com/Video/How-To-Make-Portable-Applications-For-Free-914...

Thank's

Maturnuwun sederek sedoyo,, meniko manfaat sanget kadose. senajan kulo nggeh mboten ngertos

Visual Basic

May I use MS Visual Basic 4 (or 6) to make portable app?

It is not a .Net version of VB!

Thanks

certainly :D

certainly Laughing out loud

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Compilers??

Does any 1 no any C++ compilers!

high explosives and electricity yay!

No need

There's no need for any C++ compiler. Additionally, if you don't know about C++ compilers, it's unlikely that one would be of any use to you.

To respond to your question though, MinGW compiles C++ code.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Help and guides want you to have it up to read the translation.

Help and guides want you to have it up to read the translation.
도움말이나 가이드 정도는 번역한 글을 올려줬으면 좋겠습니다.

You are viewing the page through Google Translate.
But does not really understand.

현재 페이지를 구글번역을 통해 보고 있습니다.
그런데 이해가 되질 않습니다.

Been looking for something like this

i have been wondering how everyone makes these wonderful apps i use everyday. now i might be able to make myself one now lol. That's if i can figure out how to do it exactly. Because i have no experience with scripting at all or anything.

Anyone got any tips just xfire me or post it here

Also im having issues getting x-chat from the link above y is this? Is there another way i can get that program or is there a newer way of making portable apps

I also saw a post about someone wanted a copy of the walk through so i edited some of the html on this page and made this:

http://docs.google.com/View?id=dccw2b6_4hpcmn7ff

Right click and save link and after the name of the file add .html and select the scroll menu and put all files. That's if u want to have a copy on hand all the times.

~(edited using notepad)
~(quoted from Creating A Portable App: A Guerrilla Field Guide
Submitted by OliverK on July 31, 2008 - 8:42pm)

Dalton M. Kadar

(Don't Mind Me I'm A Noob)

Virtual PC

noobie here...i could just figure this out thru trial and error..but, can i create portables within a virtual pc? thanx for reply...

hi everybody.

Yes, you may use Virtual PC

Yes, you may use Virtual PC to create a environment for testing and developing an application to portable.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Java? As I understand there's

Java? As I understand there's the Java Portablizer, but there is not yet an Open Source JRE. So use of Java applications is somehow limited.

Now that we have java portable you might want to change this guide to reflect that Eye-wink Also, the links to the format specification and the installer are outdated.

Other than that, still an great guide.

Behold, the DutchLander has arrived.
Grammatical errors are copyrighted.

NSIS Portable

Hi Oliver,
you might want to change the link to NSIS Portable too. It's official Smiling
Well, keep up your work on this great guide.

updated Thanks for letting

updated Laughing out loud Thanks for letting me know. You to, MaienM

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Thanks

for mentioning my Dia Portable, but it isn't a Java app. Sticking out tongue
It's GTK.

Fine, I'll take it out. I

Shocked

Fine, I'll take it out. I thought it was though. I guess I didn't read my search well enough.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Update for freeware

Don't forget to update this to include the new freeware apps.

The guy who acts like he knows what he's talking about.

yeah, I'll have to update

yeah, I'll have to update that somehow. I'm rather swamped with RFL right now, but I will try to work on it. I gotta give out ta seal on eclipse on and fix screamer so hoepfully I can get another release.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Automate from zulog

Are there any tools are guide to automate this process from zulog files generated by ZiSoft's Uninstaller?

not that I'm aware of at this

not that I'm aware of at this time

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

recently used thinapp to create portable

Thinapp/Thinstall
are there any tools simmilar to this that can create just a single .exe rather than a large .dat + small .exe ..
I dont know any programming [tried bbc basic ...many moons ago...but was useless].
So My chances of using multiple programs and learning programming skills are slim..I realise many will enjoy this process, but I was looking for somthing simpler.
Appreciate the Site..introduced me to portables...so usefull.

No, not legal

ThinApp is almost never used legally - to even use it personally legally you've got to fork out thousands of dollars.

There is no free equivalent. It has to be coded manually.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

learning new skills required!!... oh well

thanks for the speedy reply...
Looks like I have a lot of "Homework" and stuff to read up...
I found portables really usefull recently as I am at College learning Interactive Media and use several PC's and software packages during My week.

Are there any other good Sources of Research Material that you can think of which would assist?? (I have no programming skills..but am learning actionscript at present.. so I would need to learn some more stuff first!!)
Many thanx

What am I missing?

Alrighyt; I read the tutorial followed it step by step and then steps 11 on loose me completely. Can someone elaborate further please?

Specifically on what to do and how to do it.

step 11 explains what

step 11 explains what registry entries you need to worry about. From there, you'll need to understand what tool you are using enough to take care of those entries.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

This guide is out of date

Currently, the official position seems to be to use the newly released PortableApps Launcher here:
http://portableapps.com/apps/development/portableapps.com_launcher
It is still important to know what registry keys are created or maintained by the unmodified app, and that's where step 11 is still important.
Regshot is an app that helps you figure out what changes your app makes to the registry during install and use. Specifically, it takes a snapshot of the contents of the entire registry before the app gets installed. Then, you install and use the app, and then Regshot takes another snapshot, and compares them to see what was added or changed.
You still need this information, but with the new PortableApps Launcher, you don't need to code NSIS to deal with the registry, it is done with a simpler INI file.
Check it out, and if you get stuck, you can make a post with the specific issues, or you can go to the chat room here:
http://portableapps.com/support/chat
If you are lucky, you can get there when Chris Morgan is there, he's the author and expert for the launcher.

When I find myself in times of trouble Mother Mary comes to me
Speaking words of wisdom, let it be.
And in my hour of darkness she is standing right in front of me
Speaking words of wisdom, let it be. Whisper words of wisdom, let it be.

Currently, the official

Currently, the official position seems to be to use the newly released PortableApps Launcher here:

This guide is not about launcher or languages or whatever. It simply tries to explain what is needed for a app to be portable.

As for the predominance of NSIS coding information, this page was written at a time when NSIS was used, not PAL. NSIS apps still out number PAL apps. This is why there's alot of info on getting setup for writing NSIS. It however does not explain exactly how to write the code (I probably never got to it).

This page is still relevant today for the reason that it still explains how to check the portablility of an application, what needs to happen for it to be portable and a little bit more.

I would still recommend using NP++ if for no other reason then the syntax highlighting for INI files makes life easier.

Too many lonely hearts in the real world
Too many bridges you can burn
Too many tables you can't turn
Don't wanna live my life in the real world

Two Guides

I think that this isn't out of date per se, but there might be a need for a guide that combines the PAL with this guide (although the launcher docs are pretty good).

My Dev Tests: ~ KeePass Pro Portable (awaiting .NET directory) ~ FreeCol Portable (needs testers)

"... proving to everyone that we are operating on Valve Time..." - us Sticking out tongue

What programming language for original portable apps?

Thanks, OliverK, for this great guide.

It appears that most of what is presented would be useful for retrofitting software written by others that already exists into a portable app.

I would like to write a portable app of my own, mostly for my own personal software development edification. Rather than being a retrofit, I want to design it to be portable from the get-go.

With that in mind, what is the best answer for #4? What is the best, most portable-friendly programming language? (Please note: I have already scoured the forums for discussions about this, but haven't found a clearly definitive answer.) I do know that C# .NET (my normal pot-boiler modus operandi) is NOT the answer.

TIA

Most ANything

You can use C, C++, Python, Delphi (aka Visual Pascal), different toolkits (Qt, GTK, wxWidgets, etc). Just about anything along those lines. Shortly, we'll also be showing Java apps in the directory once we complete the discussions with Oracle.

Sometimes, the impossible can become possible, if you're awesome!

Thanks, John!

I'm going to give Python a try. Getting away from Microsloth Microsoft .NET (used in the day job) while still remaining object-oriented is a personal goal.

Thanks for telling me about the toolkits too.

I have an idea for an app that would be both a great learning tool for me and a nice addition to someone's USB stick as a portable app. So, now I begin.

Thanks for your help!

Gotta throw in another suggestion

There's an IDE that's very similar to Delphi, called Lazarus. It's based on OpenPascal, and has the benefit of being free and open source.

When I find myself in times of trouble Mother Mary comes to me
Speaking words of wisdom, let it be.
And in my hour of darkness she is standing right in front of me
Speaking words of wisdom, let it be. Whisper words of wisdom, let it be.

Please

Please make a video tutorial on how to create a portable program

tinki441