PDA

View Full Version : Why does ISE modify my TLB (type library) file?



pde14qr
02-23-2018, 12:23 PM
In what follows:
by "source machine" I mean the development machine where I compile sources and run ISE to create an install package
by "target machine" I mean the end-user machine where I run the installation package

Part of my install package contains a DLL file and its related TLB (type library) file. I noticed that the timestamps of these files on the target machine were different from those on the source machine. If I compare these binary files I find they are different.

What gives? Why do these files get modified/re-created by the installer?

Additional information: The DLL is a .Net assembly whose classes have COM interfaces. The TLB file is generated on the source m/c by REGASM and then modified by a custom tool at build time for reasons that are too complicated to explain here. In the ISE project the DLL is deliberately not marked for COM interop and the TLB file is marked to extract the COM information.

On the source machine the application works fine.
On the target machine the application crashes because the TLB file is not the one created by the custom tool.
if I simply copy the TLB file from the source machine to the target machine the application works fine on the target machine.

It seems that ISE re-creates the TLB file at install time from the DLL which is precisely what I do not want to happen. Why does it do this?