1. CJ Lai
  2. PowerBuilder
  3. Friday, 9 August 2019 14:12 PM

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

Accepted Answer
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Friday, 9 August 2019 15:12 PM
  2. PowerBuilder
  3. # Permalink
0
Votes
Undo

Hi CJ;

  Just run the "PB Packager" utility. It can create either a 32bit or 64bit MSI install for the PB runtime. When you run the MSI, it create the folders like in the IDE install and also register certain DLLs in the GAC.

HTH

Regards ... Chris

Comment
Thank you, Chris. That's a very handy utility to have/use.



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. CJ Lai
  2. Friday, 9 August 2019 15:39 PM
For manual deployment of the PB runtime, open the PB Help file and search for the keyword "deployment". From there, click on the "runtime" link. It's all pretty much well documented there.

  1. Chris Pollach @Appeon
  2. Friday, 9 August 2019 15:56 PM
To supplement Chris' answer: It is very tedious to pick the right collection of DLL files, etc. - and to do the registry updates. My experience for best install quality:



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á!

  1. Michael Kramer
  2. Sunday, 11 August 2019 15:32 PM
There are no comments made yet.


There are replies in this question but you are not allowed to view the replies from this question.