2012-05-27 3 views
2

Мы поддерживаем старую систему VB6, в которой мы написали новый код для .Net, поместили код в сборки и затем экспортировали файлы * .tlb для использования с кодовой базой VB6.Могу ли я использовать файл * .tlb без использования Regasm для регистрации на компьютере

Мой вопрос: на каждом компьютере я хочу запустить код, нужно ли использовать Regasm для регистрации библиотек типов?

Я спрашиваю, потому что сложно отслеживать установки библиотеки типов, когда компьютеры ломаются, новые компьютеры добавляются и т. Д. Кроме того, если мы обновляем код .Net, нам нужно обойти каждый компьютер и перерегистрировать тип библиотека.

Подводя итог, можно ли запустить код .Net от VB6, не регистрируя библиотеку типов на каждом компьютере, на котором работает код?

Thankyou

ответ

6

Regasm.exe только создает библиотеку типов, когда вы запускаете его с опцией в /tlb:filename.tlb командной строки. Что вы затем используете в проекте VB6 с помощью кнопки Project + References, Browse, чтобы выбрать файл .tlb. Запуск Tlbexp.exe - это еще один способ получить его, за вычетом регистрации. И тот, который вы должны предпочесть, вариант «Регистрация для COM-взаимодействия» в среде IDE. Однако вам нужно запустить VS, чтобы он мог записывать реестр. Щелкните правой кнопкой мыши ярлык и выберите «Запуск от имени администратора».

Наличие в списке VB6 небольшого удобства, но это трудно получить. Стандартный регистрационный код .NET, вызываемый Regasm.exe, не записывает требуемый ключ «Программируемый», чтобы заставить VB6 автоматически добавлять компонент в свой список. Вы должны написать пользовательскую функцию регистрации, украшенную атрибутом [ComRegisterFunction], который записывает недостающий ключ. Этого не стоит, когда вы можете просто нажать «Обзор».

Также обратите внимание: не необходимо зарегистрировать библиотеку типов на машине пользователя. Это необходимо только компилятору VB6. Вам нужно зарегистрировать классы [ComVisible], это легко с проектом установки. Просто установите свойство Register библиотеки DLL на vsdrpCOM.

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

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