My Delphi application Client.exe
needs a couple of .tlb
files to work. These files define server interfaces. The corresponding object instances are created with System.Win.ComObj.CreateRemoteComObject
.
What is the problem?
For now the .tlb
files are registered globally during the installation using regtlibv12.exe
and are unregistered on uninstalling the software. This makes it impossible to install and uninstall multiple instances of the same software since it can break the TLB registrations.
Attempt to solve it with Registration Free COM
The idea is to use the .tlb
files without registration but with a .manifest
file.
I know how to use a customized Windows application manifest file with Delphi. But I don't know how to extract the information from the .tlb
files and create the correct .manifest
file.
I have found Mt.exe which can be used to generate .manifest
files but it doesn't help me because
it's asking for a corresponding DLL file when the -tlb
parameter is set but there are no .dll
files shipped with the application since the COM objects are created on remote machines
it doesn't accept multiple .tlb
files in the parameter list.
Other tools like Make My Manifest or Unattended Make My Manifest aren't available anymore or don't help me either.
What is the right way to create a manifest file in this case?
AFAIK RegFree COM does only support registration of local instances, via a dll. There is no way of using it with DCOM, which is something much more complex than local COM.
From my own experiment, DCOM could be a real PITA, especially in terms of registration. IMHO you should either use local COM objects, or switch to another much standard approach, like REST services. You may be able to re-use almost the same interfaces using e.g. an SOA approach over REST/JSON - see especially sicClientDriven
mode to emulate DCOM objects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With