After running Launcher Generator I get a successful output and Exe for my Application. When I run the Application i get an error
MyApp Portable cannot be started. You may want to re-install...
(ERROR: C:\*\*\*\App\AppInfo\Launcher\MyApp.ini cannot be found.)
My assumption was when the launcher ran it would create the appropriate .ini files after I put in the AppInfo.ini and other required .INI's in the AppInfo folder.
If I manually create MyApp.ini and place it in the \Launcher Directory I get the error:
(Portable Launcher - What Am I To Launch?)
I have read for hours in the forums as well as the manual and other documentation recommended.
Also I read several docs about the folder layout and structure and have found NOTHING showing a Launcher SubDirectory being in the AppInfo Directory.
(The only other question I have is, do I need to fully install the application to have access to the extracted files? Or should everything be compiled from the Standalone Install File of the program I am working with?)
I know this may be basics of the Portable Development but I am avidly learning a lot from the documents and other posts.
Please assist in any way you can.
Thanks.
Launcher.ini (the generic working title we give to the file, it never will actually be called that) isn't documented in the format specification, I assume because once upon a time it wasn't part of the spec at all, and still is not 100% required (Firefox Portable, among others, doesn't use it), but it is required if you use the PortableApps Launcher to generate the portable executable.
This is the file that tells the Launcher which executable it should run within App\AppName\ on launch, and also tells it the other necessary details like registry, file and folder handling that are needed for portability.
As you've found, the file needs to be in App\AppInfo\Launcher\ and needs to be called AppNamePortable.ini.
It uses the standard .ini file format (sections are represented by
[Section]
and entries are represented byEntryName=value
), just the same as the AppInfo.ini file.The main documentation for the launcher.ini can be found here. The only required entry is
[Launch]
ProgramExecutable=?????.exe
Anything else depends on what portability changes need to be handled for the app.
Okay so I now understand a great deal with the launch.ini.
1st. You say it is required if I utilize the launch generator to create the ported exe. Is there a better way to generate the portable exe? I only assume this was the only option as all the tuts and docs I read told me to use it.
2nd. If I go ahead with my setup(use the launch.ini method) do I point the [launch] program.exe= to the standalone install file (firefox_setup.exe just example) or do I install the program to a seperate directory and then point it to the launch.exe there and compile everything?
Basically I am missunderstood on where some of the automated compiling of the app will happen(take all necessary data from the standalone install file) or if I am going to manually compile everything on my own(install the program and extract what data and files I will need[and how will this result in portability if im just copying what is already in another directory])
I am sorry for the detailed inquiry. I really want to picko up on this and if it helps I do have a bachelor s degree in Information Technology and I just wasnt able to fit any programming type classes in my schedule.
[Launch]ProgramExecutable
to the executable in there (relative to the App directory). Eg. if your app executable was TestPortable\App\Test\test.exe, you would haveProgramExecutable=Test\test.exe
The PortableApps Launcher doesn't automatically compile anything in regard to the base app you are trying to make portable, as I said above you have to copy the installed application into the directory structure for your soon-to-be-portable app.
The actual portability is also (manually) on you as well. You need to use a tool like RegShot Portable. The process is:
This will give you a list of all the registry changes made during the running of the app (note that not all of them will actually be associated with the app, and some may be about the app but not from the app (they may be from a firewall, antivirus or Windows itself, it takes time and a little immersion to come to know the what the difference is). From this you can determine the registry entries that need handling (and if the app uses a version of QT that needs handling, as well) and can put the necessary entries into your Launcher.ini.
Also with RegShot you may want to set it up to scan a folder or folders for changes. I have mine setup to scan my user directory (eg. C:\Users\Ken) as this is where 99.9% of file changes are going to take place in modern software on a modern Windows OS. Thus it will also give you most of the file/folder handling that you need to add to your Launcher.ini.
Anything else you need to know, just let us know. You don't need programming knowledge to put apps into PortableApps format, the primary skill you do need is analytical problem solving. If you are good at thinking through a problem, you will pick this up reasonably easily. As an example, an app that requires the working directory to be set isn't going to tell you that, but with a little problem solving and some trial and error you can figure it out.
Awesome you have been a great help! I would include you in credit & refrence material for my app if you would allow it.
1 more thing. I noticed some portable suites like cameyo etc. Claim to copy / embed registry strings that an app needs to run and package them with the portable app. Is there a way to do this the portablapps.com way? I plan to use portable apps on protected systems that may not allow registry access to 3rd party or usb apps so is there any way to make an app work within its own directories and subs by packaging something or equal to the registry: without direct access to the local pc registry?
I can say I know that my app uses registries and have pin pointed a list of which ones.
Glad to help you out. If you want to credit me you are welcome to but it certainly isn't required.
Virtualization has been talked about and may be implemented some time off in the future, but for now we don't have it and you probably won't see it any time soon.
I've honestly never tried one of our apps on a system locked down to that level before so can't give you a definitive answer. The best case you could hope for is the app to not need those entries for proper operation and it will run fine but be missing some settings. You would just have to test it, I guess.
Off the top of your head do you know of any apps on the Download page that utilize the \Launch.ini method as something of a reference for me to compare my setup with. I dont wish to download every app to see if they use that type of launch.ini but I guess I will if I have too.
Honestly, more than 99% of our apps use the PortableApps Launcher, it is only a few old legacy apps that haven't been updated that we also haven't updated to the current way we do things.
Every app I have (both released and in beta) use the PortableApps Launcher. For specific functionality examples from my official apps (in order from most basic to most advanced):
And if you want a Java app example (Java apps currently cannot become official):
Makagiga Portable (dev test) - basic Java handling, moving directories.