When you deploy the core PowerBuilder runtime files, you must also deploy the Microsoft Visual C++ runtime libraries, if they are not present on the user's computer. The PowerBuilder runtime files have a runtime dependency on these files. See Third-party components and deployment for more information.
The following table lists additional runtime files that your application might not require. For example, pbvm.dll is required for all deployed applications, but pbrtc.dll and its associated runtime files are required only if your application uses Rich Text controls or RichText DataWindow objects.
The Sybase.PowerBuilder.DataWindow.Excel12.dll file will be automatically installed to the Windows GAC folder, for example, C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Sybase.PowerBuilder.DataWindow.Excel12, if you run the MSM or MSI package. However, if you manually copy runtime DLLs to the client (instead of using the MSM or MSI package), make sure to copy the Sybase.PowerBuilder.DataWindow.Excel12.dll file to the same directory as the application executable, as this file is a C# assembly DLL and cannot be loaded through the environment variable.
Localized runtime files are provided for French, German, Italian, Spanish, Dutch, Danish, Norwegian, and Swedish. These files are usually available shortly after the general release of a new version of PowerBuilder. The localized runtime files let you deploy PowerBuilder applications with standard runtime dialog boxes in the local language. They handle language-specific data when the application runs.
Starting from version 2019 R3, the PowerBuilder runtime files are provided as an installable independent component in the PowerBuilder Installer. When you run the PowerBuilder Installer, the latest Runtime and IDE can be selected and installed respectively; and you will need to install Runtime before IDE if no runtime has been installed on the machine, because IDE requires a runtime to start.
All runtime DLLs that used to be installed to the "Shared" folder are now separately installed to the "Runtime [version]" folder and the "IDE" folder instead, in order to physically separate Runtime files from IDE files.
The runtime files (including .dll, .ini, .pbx, .pbd etc.) are renamed so that the version number indicator (such as "170", "190") that used to be appended to the file name is removed, for example, pbvm190.dll is renamed as pbvm.dll.
To help developers conveniently get the runtime files for versions earlier than 2019 R3, Appeon provides the runtime files as zip packages on the site: -help/knowledgebase-for-pb. You can download from here the runtime files for 2017 R3, 2019, and 2019 R2.
If you want to uninstall a runtime version which is currently used by the IDE, you will be prompted to confirm the uninstall; and if you continue to uninstall, the IDE will automatically find the best matching version (normally the latest) available on the machine, or will fail to work if no compatible runtime version is found.
When there are more than one build (minor version) of PowerBuilder Runtime installed, you can determine which build of PowerBuilder Runtime will be loaded by the PowerBuilder IDE. By default, the latest PowerBuilder Runtime that is installed will be used by the PowerBuilder IDE. If a newer build of PowerBuilder Runtime is installed, you will be prompted to switch to the newer build and compile the PowerScripts with the newer build when you open PowerBuilder IDE. Or you can manually change to use a different PowerBuilder Runtime for the IDE. The PowerBuilder Runtime will be used by the IDE to run, debug, compile, and build the application.
The PowerBuilder IDE will load the runtime files according to the specified build number. If the specified build of runtime failed to load, IDE will load the latest build of runtime that is installed and compatible with the IDE.
The application executable can only run with PowerBuilder Runtime at the same major version. If there are more than one builds of PowerBuilder Runtime installed, you can determine which build of PowerBuilder Runtime will be loaded by the application executable.
The application executable in this section refers to the native C/S application compiled using Pcode only, excluding the application compiled using machine code and the application deployed by PowerClient.
Applications deployed using PowerClient cannot switch the runtime version like the native C/S application. But developers can deploy the same application with different application names and with different runtime versions (the runtime version used by the IDE will be used for deployment, so developers can manually change the runtime version in the IDE before deployment), and then run the application using different names against the corresponding runtime version.
The configuration file is automatically created by default using the same name under the same directory as the application executable, for example, if the application executable is app1.exe, then the configuration file is app1.xml. (However, this file will not be generated if the application is compiled using machine code.)
By default, the configuration file contains the runtime path and version which is specified on the Run tab of the application project painter. You can open the configuration file in an editor and change the runtime path and version that will be loaded by the application executable.
In the configuration file (executable-name.xml), you can only input one path and that path should point to the location of the runtime files; you cannot specify any other files or paths such as pb.ini (they should be deployed and distributed like before).
If you want to use the configuration file to determine the runtime files, make sure no runtime files exist under the same directory as the executable file, otherwise, these runtime files will be loaded before the ones specified in the configuration file.
If you do not want to use the configuration file, make sure to remove it (deleting the executable-name.xml file from the same folder as the application executable). Then the application will search for the runtime DLLs in the following sequence:
The location of PowerBuilder Runtime is no longer listed in the environment variable starting from version 2019 R3; instead it is recorded in the system registry by default. But you can add the location to the PATH environment variable by yourself.
Just in case anyone else experiences this problem it seems that this error is also produced if one (or more) of the four DLLs that pbvm.dll is dependent upon (pbshr.dll, libjcc.dll, libsybunic.dll or pbuis.dll) is missing from the runtime folder.
I assume the app is deployed to multiple users and only one particular machine has this problem? If yes, this points to environment/user-specific problem. For example, perhaps the file got corrupted or user doesn't have read privileges for that file.
e59dfda104