Hi All,
I wanted to get some feedback from the community on approaching apps as they drop compatibility with Windows 7/8. My typical approach is to create a legacy package of the last supported version, automatically (when practical) create a legacy copy alongside as the user upgrades to the incompatible version of Win 7, and make the legacy package available in the PA.c App Store and from the app's homepage.
Another option for some specific apps is to use a hack like the api-ms-win-core-path-l1-1-0.dll hack. This is a api-ms-win-core-path-l1-1-0.dll file based on the code from Wine that allows Python 3.9 and later to work on Windows 7. This came up in relation to PDF Arranger Portable 1.11.1 which uses Python 3.11. Dropping the file into the PDFArrangerPortable\App\PDFArranger directory allows the app to work on Win 7/8.
Here are the pros and cons from my perspective:
Legacy Package Advantages:
- One time effort from me to create a legacy package
- Legacy Win 7 users have a consistently working package
- Modern Windows users have the latest version as normal
- No need to test every release to see if it still works on Win 7/8
- No need for custom code to add/remove the hack based on Windows version
Hack Advantages:
- Single package for modern Windows and legacy users
- Legacy users still get to use a normally incompatible app
My instinct is to continue with the legacy package route. Not every app is as easy as hacking in a single file. And there could be other elements that interfere.
If I go the legacy package route, I could make it so advanced users can have an option to substitute in the hacked DLL via a PATH override. This could apply to all apps when running on Windows 7, so there'd be no need to modify each app.
Would love to get thoughts from other devs and users in the community.
Hi John,
in my opinion You must to continue with the legacy package route,
BUT:
1. Put a notice on the portable program's download page and state that a hack is available for that program and specify which version of Windows will 'fixed';
2. create a new subfolder in the installed PAF build:
--> Other --> 'Hack' or, better, 'Windows 7/8'
and insert in this 'Hack' subfolder the 'exe' or 'dll' with instruction how to use this fix (for advanced users).
If the hack is of considerable size, then put in the Other - Hack folder only the instructions on:
1. where to get the fix
2. how to perform the fix
This would only allow a few new portable programs to be 'fixed' and you would continue with the legacy way.
Hi John!
Off-topic:
I use this title, when there are two opposed opinions. a sort of an abstract word play.
Nowadays, days of IRL Barbie World, Consumerism and Planned Obsolescence, and the true story of a Fiberglass Car eaten by a cow. Even food tastes comme du papier-mâché. Software companies won't undertake a different pathn, rare are the developers who do not follow the 'herd'.
On-Topic:
Let's say, I'm inclined towards the Hack:
About legacy Packages:
Opinion about hybrid apps:
TLDR; Let's hack small and easy (to do) apps, and let's split huge and complicated ones!
PS. Tired right now, will try to add other details, let's say tomorrow if we're still here..
“Life is a strategy game, where roles are already distributed”
― Neo Buddha ―
As already said in this post https://www.portablefreeware.com/forums/viewtopic.php?p=108030#p108030
Software based on Python 3.9 is not working on Windows 7
Errors around api-ms-win-core-path-l1-1-0.dll and a such basically requires to install a particular vcredist_x86.exe/vcredist_x64.exe.
But specifically that error in the Python 3.9 is because the DLL is a part of Windows 8.
So this error is specific of Windows 7.
In effect the dll api-ms-win-core-path-l1-1-0.dll exist in Windows 8-8.1 and up (Win10 and Win11) and it's similar but incompatible with the dll of this hack https://github.com/nalexandru/api-ms-win-core-path-HACK.
So I suggest You (I have partially changed my opinion):
1. create a new subfolder inside '\PDF Arranger\App' with the name 'Windows7 hack'
2. this subfolder must contains the content of 'api-ms-win-core-path-l1-1-0.dll' (extracted from zip archive): x86 and x64 subsubfolders + a text file with explanation of this hack
3. if Your launcher can test witch Windows version is installed (Windows 7 and if 32 or 64 bit), therefore
4. You can extract from Your PAF installer the subfolder 'Windows7 hack' and put them inside '\PDF Arranger\App'
5. Your launcher PDFArrangerPortableLegacy can copy the appropriate dll from 'Windows7 hack' to '\PDFArranger' and launch PDFArranger for Windows7
6. or if the installed Windows is 8,8.1,10 or 11 You can prepare a launcher with name PDFArrangerPortable and launch PDFArrangerPortable.
7. to conclude this is my suggestion, but I don't know if you can make it.
b.t.w.
This hack should also work for later versions of PDF Arranger: v1.11.1 and up.