Hi, I just found this site.
I'm the author of an application (https://www.pingnoo.com) and I provide a portable version for windows (I'm actually about to push another version which fixes an issue where the settings were stored in a non-portable way.
I've been reading the developer information here and I'm slightly confused that it appears that you bundle your application in an installer? I thought the whole point of portable applications was to avoid installers and allow the application to be executed directly from a thumb drive or some other medium. What have I missed here?
Also, what are the requirements for a portable app here in terms of dependencies? My portable zip contains all the dependencies barring the visual c runtime (which MS make difficult), I did a search but couldn't find anything.
Thanks
Typical perception of an installer is something that makes changes all over the filesystem and the registry.
But running a basic installer is no different to extracting a zip file, except an installer provides us with a little more advanced functionality like being able to live download components for freeware releases where we can't legally bundle the base app.
For apps that require MSVC, we bundle the required file(s). Not all systems have the necessary package installed, and it is not good when apps will run on one system but not another for (what appears to users as) no understandable reason. The terms of use for MSVC allow bundling/repackaging so it is ok to do this.
The only dependency we currently don't allow is .NET apps that can't run under both .NET 2 & 4, because we can't guarantee such apps will run on any given system, and can't legally redistribute the .NET framework.
Thanks for the quick reply and for clearing that up.
I will take a look into what I need to do to create a portable version as per your specification documents.
My current layout is:
App.exe
{DLL's}
Components {this is a folder that contains the plugins for the application}
For a portable version, if a folder named "data" exists in the same folder as the executable then the application is determined to be "portable" and all settings data are written into that folder.
I've set up my CI system to generate a 32-bit portable application. By default now, the portable version zip file I generate (which goes up on GitHub) includes the visual c runtime DLL's so no other dependencies are required, it should just run.
For this site, from your earlier reply, I guess I should omit these and set the appropriate opens in the in files to show that it needs the visual studio 2019 runtime?
Leave the MSVC dependency in your package.
Because there are different potential versions we don't bundle them at the platform level, we just include them at the app level where needed.
Sorry, dumb question, my brain is playing tricks...do you mean leave the dependency out (i.e don't bundle the runtime files in) or do include the runtime files directly?
Thanks.
Include it.
Otherwise you will have users unable to run your app without installing the dependency on their system.
Cheers, I'll continue with this later in the week.