If I try to create a launcher for a folder like C:\Users\[user]\Documents\test this\PortableApps\something (note test this) then it fails (complaining about the name= of the program and if I also remove spaces from the name= then it complains about the folder itself).
But if all I do is create a symlink to it from c:\something and run the launcher on it then it works perfectly.
Could you make sure it supports long name folders with spaces?
The current version has a max string length of 1024. With very long paths and command lines, you're gonna hit that. Longer paths won't be possible until the major update to PA.c Launcher 3.0 which doesn't have an ETA. For now, you'll need to use shorter paths.
Sometimes, the impossible can become possible, if you're awesome!
Not sure I understand why this limit is needed, but can you at least recognize such folders and refuse to run the launcher on them?
Alternatively, you can offer to symlink them to shorter folders, then unsymlink them after the action is done.
NSIS 2.x has a 1024 character string limit, which is what is breaking it. This is the first mention of the issue I recall seeing since the launcher was released over a decade ago, so that's probably why it was never trapped for and alerted on. The 2.x release won't be updated with a message. The 3.x release (eventually) will up the limit to 8K character strings.
Symlinks require admin rights and are not an option within something like the PA.c Launcher.
Also worth noting that Windows has a ~256 character limit on paths by default, so most apps are written with that in mind.
Sometimes, the impossible can become possible, if you're awesome!
Meaning the apps' default locations aren't relevant, since we're talking about portable versions that can be put anywhere.
The compiled apps don't have the same limitation as they aren't internally constructing these long command lines that hit the 1024 character limit. Some of the apps themselves, of course, won't be able to run from longer paths due to their own limitations.
Sometimes, the impossible can become possible, if you're awesome!
If symlink is an issue due to admin rights (although you can ask for a temporary admin right), how about moving/copying the program into a place like program files, then move/copy it back?
We won't be asking for admin rights to compile apps with the PA.c Launcher. Moving to Program Files also requires admin rights. If you're compiling apps with the PA.c Launcher, use a shorter path. Any of the standard install locations will work without issue (external root, C: root, USERPROFILE. etc).
Sometimes, the impossible can become possible, if you're awesome!
Like USERPROFILE?
USERPROFILE doesn't require admin rights. We don't support installs to locations requiring admin rights. Never have.
Sometimes, the impossible can become possible, if you're awesome!
If USERPROFILE doesn't require admin rights, it sounds like a perfect place to move/copy the long folder into in order to be able to create a launcher from it.
As I mentioned above, a change to detect and handle this will not be coming to the PA.c Launcher 2.x series. It will be handled in the eventual 3.x release at some point in the future. Until then, please run it from a shorter path.
Sometimes, the impossible can become possible, if you're awesome!
Hello @John T. Haller, I've tested app path that is longer than 256 characters but sure is less than 270, and the launcher refused to launch the app.
So, as I see it, the 1024 max string length is not the issue, at least it should allow app path length that is around 1000 character (right?). And for me (and most other users) 1000 characters is more than enough (unlike 256 - it's to little)
If any help, we can use the prefix \\?\ trick when launching apps to work around the issue as mentioned in the below links:
Microsoft: Maximum Path Length Limitation
Stackoverflow
Long Paths in .NET - Part1
Long Paths in .NET - Part2
Long Paths in .NET - Part3
The "Launcher" here is the PA.c Launcher's generator which is used to build the AppNamePortable.exe launcher. This is limited but has nothing to do with running an app.
If you're unable to run an app from an AppNamePortable.exe launcher, it's likely that the launch string is over 1024 characters. This is NOT the app path but the launch string. Instead just:
"X:\Absurdly\Long\Path\AppNamePortable\App\MyApp.exe"
The launch string is:
"X:\Absurdly\Long\Path\AppNamePortable\App\MyApp.exe" --portable --no-splash --data="X:\Absurdly\Long\Path\AppNamePortable\Data\settings" --log="X:\Absurdly\Long\Path\AppNamePortable\Data\logs"
If you're referring to the PA.c Platform's Menu, that's something entirely different.
Sometimes, the impossible can become possible, if you're awesome!
Thank you for explaining it.
What I meant was the "Start=Relative\App\Path\Name.exe" line in appinfo.ini. Whenever the Absolute path length is greater than 260 characters, the app can not be opened from the PortableApps start menu.
Can it be fixed? Should I open another thread for this issue?
Again, are you referring to the Launcher or to the Platform?
Please post the full launcher ini for analysis as well.
Sometimes, the impossible can become possible, if you're awesome!
Sorry, I got mixed up between those 2. I meant the PortableApps Platform.
Whenever the Absolute path length is greater than 260 characters, the app can not be opened from the PortableApps Platform.
Another useful link from Microsoft
This would be a separate issue entirely. You can create a new post discussing it and asking for it a feature addition for it if you'd like in the PortableApps.com Platform forum. I'm not sure if I will implement this as even when you enable long paths in Windows 10/11 with the LongPathsEnabled registry key, apps themselves won't work with it unless they explicitly opt in and advertise that to Windows via a manifest entry. Most apps won't work with paths that long. Even Windows Explorer won't. I think the majority of apps we make available will fail in such a situation. Please create a new topic if you'd like to discuss further and avoid replying here so it doesn't keep notifying the folks above who are discussing something different.
Sometimes, the impossible can become possible, if you're awesome!