2013-06-25 3 views
1

Я создавал различные плагины для приложения, которое требует от меня создания файла .tlb. Раньше это просто случай настройки свойств сборки моего проекта на «Регистрация для COM-взаимодействия», создавая таким образом файл .tlb вместе с моей выходной dll. Раньше, при использовании шаблона проектов установщика Visual Studio 2010, это всегда правильно регистрировало .tlb во время установки на целевой машине.Как зарегистрировать файл библиотеки типов (.tlb) с помощью InstallShield LE в Visual Studio 2012 C#

Недавно я попытался сделать переход на Visual Studio 2012 и использовать проект InstallShield LE для создания моего установщика, но он, похоже, не регистрирует библиотеку типов во время установки, позвольте мне вручную зарегистрироваться через маршрут regasm линии линии - или, по крайней мере, это не так очевидно для меня.

В параметрах проекта InstallShield мне пришлось вручную добавить файл приложения .tlb (из папки выпуска/сборки) в список файлов, которые будут включены в программу установки, поскольку он, похоже, не входит в комплект поставки вместе с файлы, созданные с помощью проекта или содержимого. В свойствах .tlb-файла «COM & .Net Settings» у меня он настроен на «Тип регистрации:« Извлечь COM-информацию »и включил« COM-взаимодействие ».

Что мне не хватает?

ответ

0

Попробуйте эту нить для хорошего технического описания: Are *.tlb files ever used at runtime?

В большинстве случаев я считаю, что * .tlb файл не требуется, поскольку он уже составлен в большинстве бинарных файлов независимо от того, является ли файл EXE или dll, но .NET Interop намного сложнее, а другой поток объясняет, что файл * .tlb может понадобиться для решения передовых проблем связи между потоками и процессами - что-то, что я случайно забыл.

При реализации настройки у меня никогда не было необходимости регистрировать файл * .tlb сам по себе, этого было достаточно, чтобы зарегистрировать соответствующий двоичный файл (exe/dll), но все это зависит от вариантов использования продукта ,

Имейте в виду, что путь Installshield регистрируется для COM Interop не всегда лучший вариант, насколько я помню. Я точно не знаю, что они делают, но я бы проверял и сравнивал с нормальным regasm.exe Регистрация: http://msdn.microsoft.com/en-us/library/tzat5yw6(v=vs.110).aspx. И внимательно прочитайте связанный поток (Are *.tlb files ever used at runtime?) о проблемах с прокси-серверами, заглушками и сортировкой, если вам нужны эти функции.

Вот некоторые дополнительные ссылки с краткой информацией о COM/DCOM:

Содержание библиотеки Тип: http://msdn.microsoft.com/en-us/library/windows/desktop/ms221355(v=vs.85).aspx

COM, DCOM, и тип библиотеки:http://msdn.microsoft.com/en-us/library/windows/desktop/aa366757(v=vs.85).aspx

Файлы, созданные для COM-интерфейса:http://msdn.microsoft.com/en-us/library/windows/desktop/aa366830(v=vs.85).aspx

 Смежные вопросы

  • Нет связанных вопросов^_^