【问题标题】:How can I get tlbimp to not automatically generate assemblies for referenced types?如何让 tlbimp 不为引用类型自动生成程序集?
【发布时间】:2010-10-21 02:57:32
【问题描述】:

我想使用 .NET SDK 中包含的 tlbimp.exe 工具从类型库创建互操作程序集。

我的问题是源类型库正在引用另一个我没有可用的库中的类型。如何让 tlbimp 不为引用类型自动生成程序集?

我收到以下错误:

解决对类型库“GridEX20”的引用。 自动将“GridEX20”导入“C:\tmp\GridEX20.dll”。 TlbImp:错误 TI0000:System.Runtime.InteropServices.COMException - 加载类型库/DLL 时出错。 (来自 HRESULT 的异常:0x80029C4A (TYPE_E_CANTLOADLIBRARY))

使用Process Monitor我得出的结论是找到了GridEX20库,但是它引用了另一个没有找到的库,当找不到这个库时tlbimp报错。

【问题讨论】:

    标签: com interop tlbimp


    【解决方案1】:

    您可以尝试 /strictref 选项,但我认为它对您没有帮助。

    我建议您使用 Dependency Walker 检查 GridEX20.dll(对于 VS2005,它位于 C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin 中,但我认为它已不再发布 -你可以找到一个版本here)。

    这应该告诉您 dll 依赖于哪些程序集 - 这至少可以确认您的初始假设是否正确。

    【讨论】:

      猜你喜欢
      • 2012-08-06
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多