Bug 6374

Compiled application looks for runtime in Common Appeon folder, while Runtime Packager installs in Shared 12 October, 2021

Chris Tillman
31 March, 2021
Product: PowerBuilder Category: Runtime
Version: 2019 R3 Build: 2670
Classification: Issue Publishing: Public
Priority: P2
Status: Verifying Reason:
Communication Status: Waiting for Customer
Ken Guo @Appeon 12 October, 2021
#28
Hi Chris,

Thanks for your update.
Let us know if later there’s any problem.

Regards,
Ken
Chris Tillman 12 October, 2021
#27
I solved the previous comment by going to the Offline Installer option. This allowed me to choose the 2703 Runtime Installer for download (rather than installing it on my system).
Chris Tillman 12 October, 2021
#26
CannotDownloadRuntime2703.odt (51KB)

I built a new version of my app using the latest version available at the time, build 2703. Now I'm ready to make it available for deployment. I need the Runtime Installer since the Runtime Packager is broken.

I fired up the PowerBuilderInstaller_bootstrapper.exe I had downloaded for the release I used for development. It gave me an option to change the download version to 2703, but only for the Powerbuilder installer. Under the Components tab, I can only select the later 2728 build, presumably this is an incompatible version of runtime for the app version I just developed under 2703.

Screenshots attached.
Ken Guo @Appeon 02 September, 2021
#25
Hi Chris,  

I'm just touching base with you about this ticket.  

Did we provide you with enough information to resolve this issue?
Please let us know if there is something else to support you with.  

Regards,
Ken
Ken Guo @Appeon 04 August, 2021
#24
Hi Chris,

To avoid the conflict between the PowerBuilder Runtime Packager (.msi) and PowerBuilderRuntime.exe, we use PowerBuilder Runtime Packager (.msi) for package files use only and no longer change the environment variable Path.

Ever since the client supports multiple PB runtime versions, we had to make these adjustments. Hope you can understand.

Regards,
Ken
Chris Tillman 03 August, 2021
#23
Yes, you explained adequately that you are no longer supporting the great Runtime Packager tool, which currently is broken because it installs to an incompatible location without the possibility to configure it at build time. Developers must abandon their existing build systems and adapt by either using PowerClient (not applicable for offline installations) or PowerbuilderRuntime.exe (huge footprint, adding 300MB to the installation file size with no configurability as to what is included and installed).

I have not yet undertaken the project to rebuild my build system to use PowerbuilderRuntime.exe. I hate that you've intentionally broken something that worked so well for so many developers (the Runtime Packager) and can't be bothered to fix it.
Ken Guo @Appeon 03 August, 2021
#22
Hi Chris,  

I'm just touching base with you about this ticket.  

Did we provide you with enough information to resolve this issue?
Please let us know if there is something else to support you with.  

Regards,
Ken
Ken Guo @Appeon 05 July, 2021
#21
Hi Chris,  

I'm just touching base with you about this ticket.  

Did we provide you with enough information to resolve this issue?
Please let us know if there is something else to support you with.  

Regards,
Ken
Ken Guo @Appeon 12 May, 2021
#20
Hi Chris,

1. Installing PowerBuilderRuntime.exe doesn’t require a developer license. You can locally package the PowerBuilderRuntime.exe into your application installation package before delivering it to the clients to install on their side. 
2. At the moment, we don’t have a plan to re-target the Runtime packager MSI to make it choose a different installation path.
3. PowerBuilderRuntime.exe and Runtime packager MSI have different usages so there are differences between them.
4. If you use Runtime packager MSI, it’s suggested that you add the Runtime packager MSI installation path into the system environment variable Path.
5. Also, I suggest that you can try the new feature PowerClient in PB 2019 R3. After the developer deploys the application with PowerClient, it can be run directly on the Client. It can automatically download the specified Runtime files and application files. You can find more information about it here: https://docs.appeon.com/pb2019r3/whats_new/PowerClient.html.

Regards,
Ken
Chris Tillman 11 May, 2021
#19
OldSharedPathInMSI.dot (39KB)

To summarize, the Runtime Packager you distribute with the IDE creates an MSI which installs to the wrong path in the client computer (the C:\Program Files (x86)\Appeon\Shared path as shown in the MSI's dialog when it is run (attached).

You are not going to change the Runtime Packager to correct its installation path to the new Common\Runtimexx scheme. Basically you are saying don't use the Runtime Packager, instead have the client separately install PowerBuilderRuntime.exe. The client will now have two installs to perform if the application and runtime are both upgraded. The PowerBuilderRuntime.exe is currently over 340MB and you expect that it is to be distributed to people running Powerbuilder applications instead of the Runtime Packager msi (mine is currently 93MB). The PowerBuilderRuntime.exe must be installed separately, and I have not verified but I assume it must contact Appeon and get developer license credentials in order to work, like all the Powerbuilder installers.

Is that accurate?

Is there any way to re-target the runtime packager MSI to choose a different installation path? I think that would be preferable.
Ken Guo @Appeon 11 May, 2021
#18
Hi Chris Tillman,  

I'm just touching base with you about this ticket.  
Please let us know if there is something else to support you with.  

Regards,
Ken
Ken Guo @Appeon 08 April, 2021
#17
Hi Chris Tillman,

Glad to hear that the reinstallation fixed this issue. Normally, the installation of PowerBuilderRuntime.exe would not corrupt the PB IDE. We have not reproduced this issue locally but we will continue to monitor the situation internally to see if it can be reproduced.

For Runtime Packager, since we support PB IDE and Runtime separation, the original PB Runtime Packager has to be adjusted, and now it is only used to package the required DLL files. If users install it on the Client, they need to change the Path environment variable. And this has been clarified in the Help documentation.
We recommend installing the new PowerBuilderRuntime.exe on the Client.


Regards,
Ken
Chris Tillman 07 April, 2021
#16
Re: #15 previous comment. Sorry, I reviewed the attachments again and saw the one you were referring to, AttemptedRepairError.rtf. To clarify:

I saw that error after I had run the PowerbuilderRuntime.exe on the developer machine, and after discovering that Powerbuilder no longer ran at all. Upon inspection, I found the  PowerbuilderRuntime.exe had completely cleared the C:\Program Files (x86)\Appeon\Common\Powerbuilder\Runtime 19.2.0.2670 folder, there were no files in it. That's when I attempted the Repair option in the Powerbuilder IDE installer, and it showed that message in AttemptedRepairError.rtf claiming Powerbuilder was not installed at all. Remember, this is after I started the Powerbuilder IDE installer and it offered the Repair option rather than the Install option ... so of course it knew Powerbuilder was installed. But as you can understand, it was frustrating that the IDE installer then refused to do any repairs necessitating a complete Powerbuilder wipe and reinstall. Yes, after all that it returned to working.
Chris Tillman 07 April, 2021
#15
<< The “Setup detects that PowerBuilder runtime 19.2.2670 is not installed on your computer” error happened due to that it didn’t find PB Runtime. Is this issue solved after you reinstalled them?  >>

I don't know what you're referring to here. I didn't see that error. I attached the error I saw, which I had copied the words into the text of the previous comment.

<< And for the “Setup cannot find the directory of the required sdk” issue.
Did you get this error when installing PowerBuilderRuntime.exe on the Developer machine? >> 
Yes. The  PowerBuilderRuntime.exe installer in this case cleared out the Common\Powerbuilder\Runtime 19.2.0.2670 folder completely.

<< Is SnapDevelop installed on this developer machine? We had fixed this issue in the internal later version. >> 
It was, yes. When I had to completely uninstall and reinstall to remedy the issue, I avoided installing it the second time. 

<< But if you were installing PowerBuilderRuntime.exe on a client machine, this issue shouldn’t happen. Let me know if the issue happens on the client machine  without PB installed . >>
I ran it on a Windows 7 machine where I had previously uninstalled Powerbuilder 17. Yes, in that case it creates the runtime in the Common folder unlike the Runtime Packager msi which created it in the Shared folder.

Now, the issue is that these questions do not address the points. One, innocently using the PowerbuilderRuntime.exe on a developer computer completely trashes the installation requiring manual uninstall using the control panel of all Powerbuilder components, restart and then reinstall. That is unacceptable.

Two, the runtime packager generated msi should install the files in the place they need to be to be accessed by the built application. If you don't intend to support the runtime packager, then you should not distribute it. But in that case you will be severely impacting developers who have all designed their deployment systems around this component.
Ken Guo @Appeon 07 April, 2021
#14
Hi Chris Tillman,

The “Setup detects that PowerBuilder runtime 19.2.2670 is not installed on your computer” error happened due to that it didn’t find PB Runtime. Is this issue solved after you reinstalled them?  

And for the “Setup cannot find the directory of the required sdk” issue.
Did you get this error when installing PowerBuilderRuntime.exe on the Developer machine? Is SnapDevelop installed on this developer machine? We had fixed this issue in the internal later version.
But if you were installing PowerBuilderRuntime.exe on a client machine, this issue shouldn’t happen. Let me know if the issue happens on the client machine  without PB installed .


Regards,
Ken
Chris Tillman 05 April, 2021
#13
AttemptedRepairError.rtf (2183KB)

I hadn't used Powerbuilder for a few days after the last post where I installed from the downloaded PowerBuilderRuntime-2670 as prescribed using the Download Offline Installer link for 2019 R3. I reported the error below, but that the rest of the install seemed to progress. I was surprised when going back to open Powerbuilder again, that it doesn't run, immediately giving the error Failed to load the DLL! DLL name: pbsys.dll, Runtime path: C:\Program Files (x86)\Appeon\Common\PowerBuilder\Runtime 19.2.0.2670. Checking that path, I found it to be empty. No files at all. I surmise this must have been the effect of the run of the PowerBuilderRuntime-2670; perhaps installing all the DLLs in the Shared folder like the Runtime Packager does? I tried using the Repair option of the main 2019 R3 installer. Frustratingly, that resulted in the attached error claiming it was not installed. Probably it is also looking for a key file in the Common folder? To deal with that, I completely uninstalled and reinstalled PB 2019 R3 IDE.
Ken Guo @Appeon 02 April, 2021
#12
Hi Chris Tillman,

Thank you for your feedback, I will reply you as soon as possible after communicating with the development team.


Regards,
Ken
Chris Pollach @Appeon 01 April, 2021
#11
Hi Ken;

   FWIW: I would consider #2 a "workaround" and not a fix. IMHO, the PB Packager should work as per Chris's (and all PB developers) expectations right away after the IDE installation. Not because you need to install it twice (another workaround and not a fix IMHO).

Just my $0.02.

Regards ... Chris
Chris Tillman 01 April, 2021
#10
PowerbuilderRuntimeInstallerError.rtf (2162KB)

I downloaded the offline Runtime Installer as prescribed. When I tried to run it, I got this error. After dismissing the error, it appeared to finish the installation.
Chris Tillman 01 April, 2021
#9
So what you're telling me is the Runtime Packager delivered with 2019 R3 is useless for 2019 R3. It installs the 2019 R3 runtime in a folder which 2019 R3 applications will not access. Why wouldn't the Runtime Packager have been changed to install to the correct folder? 

You're saying I have to make my clients use the Powerbuilder IDE installer (selecting the runtime) before they can install my program? And they will have to sign up for a trial version of Powerbuilder in order to use the installer to get their runtime?

This is not the Powerbuilder model of development any more. It makes it way too hard for the end user.
Ken Guo @Appeon 01 April, 2021
#8
PowerBuilder Runtime

Hi Chris Tillman,

The issue you submitted is a change in PB 2019 R3, not a Bug.
PB 2019 R3 has separated PB IDE and PB Runtime. Multiple versions of PB Runtime can coexist on the Client, and the PB IDE and EXE application support selecting different versions of PB Runtime.
There are two ways to install PB Runtime:
1. Generate an MSI by using PowerBuilder Runtime Packager and then install the MSI on the Client. This is the old way of installing it.
2. Install PowerBuilder Runtime directly by using PowerBuilder Installer. This is the new way of installation added in PB 2019 R3 (Recommended). You can refer to the attached screenshot for more details.

We recommend that you adopt the #2 new way to install PowerBuilder Runtime. In this way, PowerBuilder Runtime will be installed to C:\Program Files (x86)\Appeon\Common\PowerBuilder\Runtime 19.2.0.#### by default.
After the installation, you just need to make sure that the Runtime path specified in yourapp.xml file in the same directory as your exe application is correct.

If you continue to follow the #1 old way to install PowerBuilder Runtime, then you would need to add the C:\Program Files (x86)\Appeon\Shared directory to the system Path environment variables or copy all the files in the Shared directory to the directory where exe is. You can refer to the link below for more details:
https://docs.appeon.com/pb2019r3/application_techniques/ch09s02.html#PowerBuilder_Runtime_Packager 

Regards,
Ken
Ken Guo @Appeon 01 April, 2021
#7
Hi Miguel,

Bug 5955 is an issue related to PB DOM which is going to be fixed in PB 2019 R3 MR.
Since Bug 5955 and this Bug 6374 are not about the same issue, if you want to consult about the issue in Bug 5955, please reply in Bug 5955 even though it’s now marked Closed.

Regards,
Ken
Chris Tillman 31 March, 2021
#6
Thanks much, Chris.
Chris Pollach @Appeon 31 March, 2021
#5
Hi Miguel;

  Yes, I saw that one before. Unfortunately, Engineering marked that as an enhancement. This ticket (especially) and yours are a bug an should be fixed in the next MR IMHO.

Regards ... Chris
Miguel Leeuwe 31 March, 2021
#4
https://www.appeon.com/standardsupport/search/view?id=5955
Miguel Leeuwe 31 March, 2021
#3
Chris,
FYI: I created a ticket for listing the PBDOM as obsolete" in the past.
regards
Chris Pollach @Appeon 31 March, 2021
#2
Hi Chris;

  Thank you for bringing this issue to our attention. I was able to recreate the issue on my test machine with no PB IDE installed. I also notices that the Packager list the "PB DOM" support under the "Deprecated" section as well. This is incorrect.

  I will now transfer this ticket over to the main Support / Engineering team for their review & feedback.

Regards ... Chris
Chris Tillman 31 March, 2021
#1
testCommonFolder.zip (73KB)

*Phenomenon:
The runtime packager used in PB 2019 R3, PBCLTRT19.2.0.2670.msi, installs the runtime binaries into the C:\Program Files (x86)\Appeon\Shared folder.
A compiled application in PB 2019 R3, though attempts to use runtime files from the C:\Program Files (x86)\Appeon\Common folder.
When the runtime packager is used in an installer for a client computer which does not have Powerbuilder installed, it doesn't create a Common folder. It installs everything into the Shared folder. But the application when started complains that the runtime can't be found (and shows the path to the Common folder).

*Reproduce Steps:
Create Runtime Packager msi. (Wow, did that ever get fat in this version!)
Create and build test application (very simple app attached).
Run the packager, then the test application on a machine which doesn't have Powerbuilder installed. The error displayed by the application is "Runtime path not exist, path: C:\Program Files (x86)\Appeon\Common\Powerbuilder\Runtime 19.2.0.2670!
Remarks:
You can simulate the same problem by renaming your PB Common folder (and leaving the Shared folder alone).
You can workaround it on a client computer by copying the files from C:\Program Files (x86)\Appeon\Shared\Powerbuilder\Runtime 19.2.0.2670 where they are installed by the Runtime Packger msi to C:\Program Files (x86)\Appeon\Common\Powerbuilder\Runtime 19.2.0.2670.
OS:
Windows 10
Platform:
64-bit
Database Type:
Microsoft SQL Server
Database Version:
2014