AnsweredAssumed Answered

tlbimp: error TI1036(cannot find method in interface when implementing it)

Question asked by dev731 on Nov 20, 2014

Hi,

 

ArcGIS 10.2.2, but probably not so much specific to this version.

I have quite simple C++ project, with IDL file only, no implementation. TLB is created OK. Then there is post build command(tlbimp) which fails to produce .NET interop DLL.

It works somewhat OK with .NET 3.5 toolset, but produces immediate problem when doing same thing with C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\TlbImp.exe.

 

error TI1036: Cannot find 'System.Boolean IsEqual(ESRI.ArcGIS.esriSystem.PropertySet)' in 'ESRI.ArcGIS.esriSystem.IPropertySet' when implementing 'ESRI.ArcGIS.esriSystem.IPropertySet' in 'MyProject.MyPropertySetClass' from 'InteropDLLBeingGenerated.Interop, Version=999.0.0.0, Culture=neutral, PublicKeyToken=blah'.

 

IsEqual has parameter of type PropertySet, while IPropertySet in PIA has interface parameter instead. Seems to be closely related to the same problem people reported on tlbimp, that is interface being substituted for class.

 

Tried to add dummy coclass which implements IPropertySet, but it didn't help. Plus MyPropertySet coclass already exposes IPropertySet in IDL.

 

Any way to fix this? or just wait for ESRI to switch to newer toolset?

Outcomes