Ошибка TlbExp.exe: эта сборка построена более поздней версией

Мы переносим часть нашего сервера на.net 4.0. Мы уже сделали переход на Vs2010 в качестве первого шага, но не изменили целевой структуры любого проекта.

В качестве второго шага я перемещаю определенную часть нашего сервера на целевой сервер 4.0, чтобы мы могли использовать некоторые новые функции.

Я столкнулся с проблемой при вызове TLBexp.exe в DLL библиотеки классов, которая предназначена для 4.0. Эта DLL также ссылается на множество DLL, предназначенных для 2.0.

Я получаю сообщение об ошибке: TlbExp: ошибка TX0000: Не удалось загрузить файл или сборку 'file:Library.dll' или одну из ее зависимостей. Эта сборка создается средой выполнения, более новой, чем текущая загруженная среда, и не может быть загружена.

Я вызываю TLBExp, который поставляется с: Microsoft SDKs\Windows\v7.0A\bin\ В команде, которую я вызываю в командной строке VS2010, я ссылаюсь на двоичные файлы v4.0.30319 (такие как mscorlib.tlb)

Разрешено ли запускать TLB в библиотеке DLL 4.0, которая ссылается на библиотеки 2.0? Если да, то есть причина, по которой я получаю эту ошибку.

Вот точный вызов команды, который я использую: "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\tlbexp.exe" /silent /win32 /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Windows.Forms.tlb" /tlbreference:"C:\Windows\system32\stdole2.tlb" C:\Dev\Library.dll

Спасибо

2 ответа

Решение

У меня была сборка с таргетингом 4.0, которая ссылалась на другую сборку с целевой структурой 3.5.

В результате я получал ту же ошибку на этапе "посткомпиляции". Методом проб и ошибок я обнаружил, что версия TLBExp находится в этой папке: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\ может сгенерировать файл TLB успешно.

НТН!

Вы можете использовать следующий путь к TlbExp, который будет выбран автоматически в зависимости от версии фреймворка проекта:

$(TargetFrameworkSDKToolsDirectory)\tlbexp.exe
Другие вопросы по тегам