You are here

New ~ Launcher Error's Missing INI File

8 posts / 0 new
Last post
jtaylor330
Offline
Last seen: 10 years 8 months ago
Joined: 2014-02-28 21:21
New ~ Launcher Error's Missing INI File

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.

Ken Herbert
Ken Herbert's picture
Online
Last seen: 18 min 58 sec ago
DeveloperModerator
Joined: 2010-05-25 18:19
Launcher.ini (the generic

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 by EntryName=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.

jtaylor330
Offline
Last seen: 10 years 8 months ago
Joined: 2014-02-28 21:21
quick example...

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.

Ken Herbert
Ken Herbert's picture
Online
Last seen: 18 min 58 sec ago
DeveloperModerator
Joined: 2010-05-25 18:19
The process
  1. Once upon a time before the PortableApps Launcher (before my time here, too) apps were made portable by developer-made executables which handled the portability stuff. There really was no standard among them as long as portability was achieved. Using the PortableApps Launcher with the Launcher.ini provides a consistent way for us to do that. So, there are certainly other ways to do it, but for apps made portable the PortableApps way, the Launcher is the way to go.
  2. You have to actually install the application first, and then copy the content of the installation (minus uninstallers, we don't need them) to App\AppName\, then point your [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 have ProgramExecutable=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:

  1. Run RegShot
  2. Take 1st shot
  3. Run the app you are making portable
  4. Make sure you do stuff like change some settings, open each window/dialog if it has multiples, save a file, load a file etc. just to check a good range of the app's functionality.
  5. Close the app
  6. Back in RegShot take 2nd shot
  7. Compare

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.

jtaylor330
Offline
Last seen: 10 years 8 months ago
Joined: 2014-02-28 21:21
Thank you

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.

Ken Herbert
Ken Herbert's picture
Online
Last seen: 18 min 58 sec ago
DeveloperModerator
Joined: 2010-05-25 18:19
Glad to help

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.

jtaylor330
Offline
Last seen: 10 years 8 months ago
Joined: 2014-02-28 21:21
which apps can I observe?

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.

Ken Herbert
Ken Herbert's picture
Online
Last seen: 18 min 58 sec ago
DeveloperModerator
Joined: 2010-05-25 18:19
Almost all of them

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):

  • dotNETInspector Portable - requires no portability modifications, the Launcher just runs the app's executable and finishes
  • BabelMap Portable - basic registry handling
  • Artha Portable - working directory, environment variables, moving files, cleaning up directories
  • BabelPad Portable - basic registry handling, language switching in .ini style file
  • Pencil Project Portable - Command line arguments, moving directories, cleaning up directories, writing to config files, handling path settings in multiple formats
  • LAN Messenger Portable - registry handling, handling apps using QT, moving directories, overwriting user options to disable non-portable functionality, language switching, handling path settings in multiple formats, handling first-run default paths

And if you want a Java app example (Java apps currently cannot become official):
Makagiga Portable (dev test) - basic Java handling, moving directories.

Log in or register to post comments