1. yakov werde
  2. PowerBuilder
  3. Thursday, 06 September 2018

Hello 

 

Back in 2012 Bruce Armstrong created a PowerBuilder.TV How-To video titled “Using .NET Assemblies with PowerBuilder”   The manifest creation tool he uses, GenMan32,   https://blogs.msdn.microsoft.com/junfeng/2007/04/14/genman32-a-tool-to-generate-sxs-manifest-for-managed-assembly-for-registration-free-com-net-interop/

is out of date and an update seems not to be available.

Does anyone know of a current Manifest creation tool that can be used together with a PB generated EXE?

Alternately, does anyone have a recent success story using local .net assemblies whose details can be shared?

Thanks 

Yakov 

 

Miguel Leeuwe Accepted Answer Pending Moderation
0
Votes
Undo

Not sure if needed anymore, but I downloaded and recompiled genman32 from this site:

https://github.com/alexpizarroj/genman32-net45

Set to the .net version of your choice, recompile and it works great!

 

Comment
There are no comments made yet.
  1. Saturday, 24 August 2019
  2. PowerBuilder
  3. # 1
yakov werde Accepted Answer Pending Moderation
0
Votes
Undo

Hi Aron ,

I am getting set to test OLE ActiveX UI control interop via local interfaces. I suspect they will if the GUIDs match.  Have you tried this?

 

Yakov

Comment
Yes I have the Microsoft Chart Controls working (thanks to yet another article from Bruce). although I got them working many years ago, and am no longer sure what I neded to do to get them to work. However happy to look at the code if you need any samples. Just met me know :)
  1. Aron Cox
  2. Saturday, 24 August 2019
I also just upgraded them from .NET 3.5 to .NET 4.7.2 with no issues at all, unless you count the slightly torturous way PowerBuidler interacts with visual ActiveX controls.
  1. Aron Cox
  2. Saturday, 24 August 2019
There are no comments made yet.
  1. Friday, 23 August 2019
  2. PowerBuilder
  3. # 2
yakov werde Accepted Answer Pending Moderation
0
Votes
Undo

Thanks.  64 bit works flawlessly, but: You need to have processorArchitecture="amd64" on your assemblyIdentity element

Also you always need to build your PB app with  "Windows Classic Style' checked.  Otherwise PB puts an internal manifest in the EXE.  Once an internal manifest is found, Windows ignores external manifests

Nest this XML snippet inside the element in your to your external manifest to get the later look

Note the bitness dependency


 
     type="win32"
   name="Microsoft.Windows.Common-Controls"
   version="6.0.0.0"
   processorArchitecture="amd64"      <>
   publicKeyToken="6595b64144ccf1df"
   language="*"
  />
 

Comment
There are no comments made yet.
  1. Friday, 23 August 2019
  2. PowerBuilder
  3. # 3
Aron Cox Accepted Answer Pending Moderation
0
Votes
Undo

Yakov, I have upload (I hope) a slightly newer version to CodeXchange, and added it as an attachemnt here which you may wish to use instead. This one has File Properties that say it is for .NET 4, and was compiled as x86 rather than AnyCPU which seemed to be causing problems, but only now. All very strange.

Attachments (1)
Comment
There are no comments made yet.
  1. Thursday, 13 September 2018
  2. PowerBuilder
  3. # 4
Bruce Armstrong Accepted Answer Pending Moderation
0
Votes
Undo

FWIW, more recently I've been using Side By Side Manifest Maker from Maze.  It's a commercial product though.

http://www.mazecomputer.com/

Comment
Thanks for the recommendation. Side By Side Manifest Maker from Maze is a comprehensive manifest generator tool. Their website has great documentation that was useful in demystifying the technology and debugging issues.



Side by Side has fallen a bit behind the times. 2017 is last VS edition it integrates into. For the PB side of the house the UI and commandline are all that is necessary. There were some "gotcha's" to overcome. But once they are, local interfaces function flawlessly at runtime.





BUT The next situation is how to configure DEVELOPMENT time to use local interfaces.

At DEV time, RUN testing happens via the IDE. PB170.exe PB170 is the application that needs a manifest for local COM interfaces

BUT

PB170.exe has its own ‘internal’ manifest. Once Windows finds an internal manifest, external manifests are ignored.



Not sure if/how to overcome the limitation to force DEV time test runs to use local interfaces. We need our developers to be able to have Release specific assembly dependences. GAC (global area) is

one release fits all



Any suggestions?
  1. yakov werde
  2. Friday, 23 August 2019
PS: Building our main application takes close to 2 hours. So DEV testing via an EXE is not a reasonable approach
  1. yakov werde
  2. Friday, 23 August 2019
There are no comments made yet.
  1. Wednesday, 12 September 2018
  2. PowerBuilder
  3. # 5
Aron Cox Accepted Answer Pending Moderation
0
Votes
Undo

FYI - I do have side-by-side working with .NET dlls using genman32, so feel free to bug me if you need anything.

Comment
There are no comments made yet.
  1. Tuesday, 11 September 2018
  2. PowerBuilder
  3. # 6
Aron Cox Accepted Answer Pending Moderation
0
Votes
Undo

Yes, I recompiled genman32 so it would work for me. I'm using it with .NET 4.7.2 (32-bit only, never done anything with 64-bit).

 

If you can give me a place to upload it to, I'll upload you a copy :)

Comment
Done :) There wasn't an upload folder, so I created one and put the genman32.exe in there, keep your current one somewhere safe in case you need it for older versions of the .NET framework.



I'm guessing we'll need to this again when .NET Framework 5 comes out, and hopefully I'll remember how to do it. But I'm sure you could do it in the future if you needed to. I decompiled the genman32 using dotPeek, and recompiled it using the required .NET framework version.



I did everything I could to contact the original owner to see if this was okay for me to do, but got no response from everything I tried :( I hope s/he doesn't mind as I tried very hard not only to contact her/him but also to find an alternative solution.
  1. Aron Cox
  2. Monday, 10 September 2018
Would you mind uploading it to CodeXchange: https://community.appeon.com/index.php/codexchange/codexchange. That would make it available to everyone.
  1. Bruce Armstrong
  2. Wednesday, 12 September 2018
I believe I have done so, although I can;t see it on there, maybe it takes time to show????
  1. Aron Cox
  2. Thursday, 13 September 2018
There are no comments made yet.
  1. Thursday, 6 September 2018
  2. PowerBuilder
  3. # 7
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.