Предотвращение создания TlbImp сборок взаимодействия для библиотек типов, на которые имеются ссылки

Я создаю сборки взаимодействия, используя TlbImp. Некоторые из моих библиотек типов ссылаются на одну базовую библиотеку типов.

Когда я бегу TlbImp против First.dll, я получаю Interop.First.dll и Interop.Core.dll. Проблема в том, что когда я снова запускаю его против Second.dll, TlbImp снова пытается сгенерировать 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 запретить создание прерываний для сборок, на которые имеются ссылки?


person M. Dudley    schedule 08.08.2012    source источник


Ответы (1)


Мне нужно было использовать параметр /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
person M. Dudley    schedule 08.08.2012