Visual Studio 2010, TlbImp генерирует .net 4.0 interops в 2,0 проектах

В проекте C# мы добавляем ссылку на COM-объект через Добавить Ссылочную установку, указывающую на COM-объект, который приводит к IDE, автоматически генерирующему interop блок. Таким образом, это прекрасно и хорошо, но мы создаем на основе .net 3.5 SP1 иначе CLR 2.0, и сгенерированные interops используют 4,0 CLR, делающие их несовместимый. Существует ли способ предотвратить это?

Я предполагаю, что другая опция, настраивают наш сценарий сборки, чтобы попытаться использовать tlbimp.exe с / ссылочным параметром? указать на mscorlib v2.0?

Во всяком случае я надеюсь, что существует флаг где-нибудь для разрешения этого.

17
задан AnthonyWJones 20 April 2010 в 12:46
поделиться

1 ответ

Я столкнулся именно с этой проблемой. Решение я нашел, используя версию 3.5 tlbimp из .Net Framework SDK (или Windows Platform SDK?), расположенную в %ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin, которая использовала CLR 2.

Я также обнаружил, что мне нужна эта информация, чтобы получить правильную библиотеку типов из exe файла, который я импортировал, так как VS будет использовать только первую библиотеку типов:

"Идентификатор ресурса может быть опционально добавлен к файлу библиотеки типов при импорте библиотеки типов из модуля, содержащего несколько библиотек типов."

tlbimp MyModule.dll\1

from http://msdn.microsoft.com/en-us/library/tt0cf3sx%28VS.80 %29.aspx

20
ответ дан 30 November 2019 в 11:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: