1

我正在使用TlbImp. 我的几个类型库引用了一个单一的核心类型库。

当我TlbImp对抗时,First.dll我得到Interop.First.dlland Interop.Core.dll。问题是当我再次运行它时,反对Second.dllTlbImp尝试Interop.Core.dll再次生成,导致错误:

TlbImp : error TI0000 : System.ApplicationException - The assembly for referenced
type library, 'Core', will not be imported since it would overwrite existing file
'Core.dll'.

如何告诉TlbImp不要为引用的程序集生成互操作?

4

1 回答 1

2

我需要使用该/reference参数来显式识别现有的互操作程序集。

最初我正在运行这些命令:

> tlbimp Core.dll /out:Interop.Core.dll
> tlbimp First.dll /out:Interop.First.dll
> tlbimp Second.dll /out:Interop.Second.dll

TlbImp将尝试在第二个和第三个命令中导入引用Core.dll并创建互操作Core.dll,从而触发错误。

为了解决这个问题,我只需要明确指定Core互操作:

> tlbimp Core.dll /out:Interop.Core.dll
> tlbimp First.dll /reference:Interop.Core.dll /out:Interop.First.dll
> tlbimp Second.dll /reference:Interop.Core.dll /out:Interop.Second.dll
于 2012-08-08T20:21:43.947 回答