I have a .NET application that uses a 3rd party 32bit DLL, so I need to build it using the x86 platform instead of 'Any CPU'.
I also have a 64bit out-of-proc COM server that I reference the EXE directly in the project. The project builds fine for 'Any CPU' but can't run on 64bit Windows because of the 32-bit dll. This is expected. But when I specify 'x86' the build
fails and I get:
TlbImp : error TI0000: A single valid machine type compatible with the input type library must be specified.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1558,9): warning MSB3283: Cannot find wrapper assembly for type library "Engine_ATLServiceLib".
Basically this tells me that it failed to build the Interop Dll for the COM server object. First off I am puzzled that I get this message when a platform is specified, I would've expected this when I build for 'Any CPU'. That aside, I am thinking
the TlbImp needs a '/Win32' or something, but I can't see how to do this in the IDE based on the platform. Furthermore I am wondering if the marshalling in said Interop dll will be correct when the 32bit managed code talks with the 64bit COM object.
Does anybody know what to do here?
View Complete Post