PowerBuilder 2107 R2 1769
Windows 10
Building 32-bit application with PBDs
I've seen this type of issue come up regularly, but I can't find anything that sounds like a solution to my current woes.
Here's what's happening:
Have a 12.5.2 application that was working just fine, we deploy by copying the application, and adding the PBDK files to a folder in the path. We've been doing this for years no problem, including exporting to Excel 12 with SaveAs XLSX!.
We have upgraded to PB2017, and added all the new PBDK files to the same folder as always, including the two required for exporting to Excel:
PBDWExcel12Interop170.dll and Sybase.PowerBuilder.DataWindow.Excel12.dll
However on user PCs the SaveAs XLSX! completely crashes our application, no errors or anything just gone.
If we install the full PowerBuilder Deployment Kit using the MSI file from the PowerBuilder Runtime Packager, then the user starts working again.
Do we need to do something with the two Excel handling dlls other than copy them? I don't remember having to do anything else in the past but perhaps I've forgotten. I've seen mention of the GAC, but I've never had to do that before.
Thank you :)
That is 100% correct. Its normally not an issue when using the PB Packager utility to create a MSI install file for the PB run-time. The MSI will automatically register the "Sybase.PowerBuilder.DataWindow.Excel12.dll" in the GAC for you. In fact, there are other DLL's that need to be in the GAC as well for proper .Net InterOp to occur (depending on what PB features your App is using).
The problem occurs when developers think that they can just manually copy the DLL's from the PB "Shared" area to the target deployment PC. This is where the GAC issue starts. Of course, that's not a problem if you manually plan to use the GAC utility to register the appropriate DLL's on the target PC.
To get an idea what PB DLL's are in the GAC, you can use the following command ... for example:
gacutil -l >yourassemblies.txt
Now open the created text file and search for any DLL starting with "Sybase.PowerBuilder.xxxx". Some of these need to be replicated on the target PC where the "Version=" the PB version you are using. For that, refer to the PB Help file under the keyword search "Deployment".
HTH
Regards ... Chris