I am working on a vb6 project and want to create a manifest so no registering is required.
I use MMM (Make My Manifest) tool which scans your VB6 project for dll dependencies and generates the manifest.
However, the MMM does not include tlb files, and I have a Client.dll and Client.tlb written in .net that which has been exposed to COM and used in my VB6 program.
I don't to you use Regasm as it would be nice if no register to the registry is done.
I tried to generate a seperate manifest for the via the mt tool in command line, 'mt.exe -tlb:Client.tlb -dll:Client.dll -out:Client.manifest'
Then I thought I could merge the 2 manifest via: 'mt.exe -manifest program.exe.manifest client.manifest -out:program.exe.manifest'
However, when I run the program I'm getting an message box that says ' Run-time error -2147220999 (800401f9): Automation error , Error in the Dll'
Am i doing things correctly above, anyone had similar experience, any help appreciated.
Here is a short description how UMMM does it:
First, for the .Net dll it generates a manifest to a temp file with this
Then embeds this manifest into .Net dll as RT_MANIFEST resource 2 with this
Finally references the .Net dll from the VB6 executable by extracting
assemblyIdentity
tag from .Net dll manifest and adding it to the reg-free manifest insidedependency\dependentAssembly
tag like thisThis way
clrClass
tags Hans mentions appear in the the .Net dll embedded manifest and not in the VB6 executable manifest.