Hi all
I am using Powerbuilder 2017 R3 on a Windows 10
I have built and exe for an application along with supporting files such as PBDs and icons, images in one single folder (that's how my employer wants to do. Let's call it 'app' folder).
I am a bit of confused by the DLLs, however...
I have read and included those DLL files in the app folder from the help file under "Deploying applications, components, and supporting files".
I then copied and pasted the folder to another PC that doesn't have PB IDE installed; therefore, it doesn't have those PATH entries below:
\...\Shared\Powerbuilder
\...\Share\Powerbuilder\x64 and
\...\Powerbuilder 17.0
I was able to run the exe in the app folder with the references in the above 3 entries on my dev PC but the exe failed to run on the other PC.
I understand that it's because the exe couldn't find those DLLs in, first local folder(app), second PATH entries, and last the registry.
Since the requirement for this is to have one single folder that contains all files to run the exe, I then copied and pasted those DLLs in those PATH folders (from the bottom one up because there are duplicates)
The exe still didn't run; it threw out this error
“The application was unable to start correctly” accompanied by an error code (0xc000007b)
It was because the exe didn't find the DLL to launch.
I am confused.
If the exe was able to find those DLLs it needed via the PATH on my dev PC, how come it failed to find them on the other even when all the DLLs are in the folder the exe is in?
What should I do? Do I need to go though each and every one of those DLLs to see which one is needed?
Also, I built this exe with 32 bit setting. Do I need any DLLs under the x64 folder at all?
Please help
Thank you
CJ
Just for my own curiosity, without that packager utility, how do I pick and choose the essential DLLs for my application to run independently?
1. Run PB Packager and select only the options that are relevant (EX: Use MSSQL => Deselect Sybase/SAP, Oracle, Informix, etc) (EX: No rich text => Deselect rich text). This produces "Minimum viable PB runtime environment".
2. Install this PB runtime package on "clean end-user image". Choose install folder = your app folder.
3. Copy all your app specific files into the app folder.
4. VERIFY app works correctly! I sometimes find that somewhere in 1M lines of code we use some unexpected PB runtime feature.
5. Use whatever diff/build tools you may need in your OPS setting to capture both files and registry differences. This will be your runtime environment.
Voilá!