我想使用.NET SDK中包含的tlbimp.exe工具从类型库创建一个interop程序集。
我的问题是源类型库引用了另一个我没有的库中的类型。如何让tlbimp不自动生成引用类型的程序集?
我收到以下错误:
Resolving reference to type library 'GridEX20'. Auto importing 'GridEX20' to 'C:\tmp\GridEX20.dll'. TlbImp : error TI0000 : System.Runtime.InteropServices.COMException - Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))
使用Process Monitor我得出结论是找到了GridEX20库,但它引用了另一个未找到的库,并且当找不到该库时tlbimp报告错误。
答案 0 :(得分:0)
您可以尝试/ strictref选项,但我认为它不会对您有所帮助。
我建议您使用Dependency Walker检查GridEX20.dll(对于VS2005,它在C:\ Program Files \ Microsoft Visual Studio 8 \ Common7 \ Tools \ Bin中找到,但我不认为它已经发货了 - 你可以找到一个版本here)。
这应该告诉你dll依赖哪些程序集 - 这至少会证实你的初始假设是否正确。