UMMM icon indicating copy to clipboard operation
UMMM copied to clipboard

warning: no type library found

Open somanuell opened this issue 3 years ago • 10 comments

My ini file, for the time being, is super simple:

Identity C:\Users\I505225\source\repos\RegFree2\Debug\RegFree2.exe
File C:\Users\I505225\source\repos\RegFree\Debug\MyComDll.dll

But:

C:\Users\I505225\source\repos\RegFree2\Debug>UMMM.exe RegFree2.ini
warning: no type library found in C:\Users\I505225\source\repos\RegFree\Debug\MyComDll.dll

The Dll has a tlb in its resources via a classic 1 TYPELIB "MyComDll.tlb" OleView.exe is able to see/load that tlb.

somanuell avatar Oct 06 '21 08:10 somanuell

If MyComDll.dll is an x64 executable this might be a problem because UMMM does not have an x64 version yet.

wqweto avatar Oct 06 '21 09:10 wqweto

MyComDll.dll is x86.

somanuell avatar Oct 06 '21 15:10 somanuell

Is this COM DLL registered with regsvr32?

wqweto avatar Oct 06 '21 16:10 wqweto

That Dll was not registered with regsvr32. My goal is to do "Reg Free". After registration, the warning is unchanged warning: no type library found

somanuell avatar Oct 06 '21 18:10 somanuell

@somanuell generally speaking it is almost impossible for the development environment to be regfree, in my experience. But your deployment can be.


As a further check of your environment and that UMMM & its dependencies are setup correctly, will it work for a standard VB6 or system DLL? Something like MSCOMCTL.ocx? Or do you get a similar error even in that case?

DaveInCaz avatar Oct 06 '21 18:10 DaveInCaz

I am OK with having to use the Registry at dev time. if I add Dependency ComCtl to my ini file, I get a dependency section added to the manifest:

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

somanuell avatar Oct 06 '21 18:10 somanuell

I getting the same error, using latest 1.0.17 UMMM version, running it on clean Windows 7 SP1 x64 system. The application is VB6 compiled exe file, which uses several ActiveX (.ocx) components. warning: no type library found in MSCOMCTL.OCX and empty tag in output manifest

<file name="MSCOMCTL.OCX">
</file>

Registering / unregistering .ocx files with regsvr32 has no effect.

apdevelop avatar Apr 21 '22 11:04 apdevelop

The error generally means that UMMM cannot access the type library living inside the referenced OCX using the system provided TLBINF32.DLL helper DLL.

Btw, you don't need clean OS to use UMMM because there is no MSCOMCTL.OCX on clean Win7 anyway. Where is this OCX sourced from and is it compatible with Win7?

You can run UMMM on your dev machine where MSCOMCTL.OCX is installed and working correctly (can be referenced by a project) and this is usually what we do -- run UMMM on the build server (which has all DLLs/OCXs registered) as a post-build step.

wqweto avatar Apr 21 '22 11:04 wqweto

I use clean system for further testing Registration-Free COM. I have only compiled exe in CAB with dependencies (dll and ocx). There actually was no TLBINF32.DLL in that clean system (looks like it will be installed with Visual Basic). I took TLBINF32.DLL from VB6 installation disk, registered it with regsvr32 and now UMMM generates .manifest file.

apdevelop avatar Apr 21 '22 11:04 apdevelop

Ooops, sorry about that!

So it seems UMMM does have a non-system provided dependency.

wqweto avatar Apr 21 '22 12:04 wqweto