2010-06-18 2 views
0

У меня есть приложение .NET WinForms, которое я преобразовал в COM-библиотеку с помощью Interop Forms Toolkit 2.1. Проект установки тета для приложения имеет как мой tlb, так и файл Microsoft.InteropFormTools.tlb, установленный для регистрации как vsdrpCOM. Предварительные требования для проекта состоят в том, чтобы установить установщик Windows 3.1, .NET Framework 3.5 с пакетом обновления 1 (SP1) и Microsoft Interop Forms Redistributable Package 2.0a.Interop Forms Toolkit DLL и «класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс» error

Когда я запускаю его локально в окне Windows XP с установленными Visual Studio 2010 и Visual Studio 6, он отлично работает. Однако на этой машине с Windows XP появляется сообщение об ошибке: «Класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс».

Любые идеи?

ответ

2

Я получил его. Для тех из вас, кто работает в этом же месте, выполните следующие действия:

  1. Перейдите в Visual Studio 2005, 2008 или 2010 (я использовал 2010) и создаю вашу форму Interop.
  2. Затем перейдите в Visual Basic 6. Если ваша библиотека еще не указана, обратитесь в библиотеку .
  3. Создайте свой исполняемый файл VB6.
  4. Вернитесь в Visual Studio (версия .NET) и создайте только свой установщик. Таким образом, установщик и VB6 оба имеют один и тот же файл .tlb

Вы должны идти. Спасибо за предложение Крис!

0

У вас есть RegAsm сборка (см. stackoverflow for more) на машине, на которой вы хотите установить приложение. Сборка также должна быть в каталоге, где выполняется приложение VB6, или установлено в GAC.

+0

Я думал, что установщик позаботится об этом для меня, пока Microsoft.InteropFormTools.tlb был зарегистрирован как vsdrfCOM, а выход был зарегистрирован как vsdrpCOM. Это подробно описано в техническом документе здесь: http://download.microsoft.com/documents/uk/msdn/vb6/Interop_Toolkit_Whitepaper.pdf –

+0

Повторное чтение вашего вопроса. Я вижу, где вы создаете проект установки в Visual Studio, это будет но если вы используете другой установщик или устанавливаете вручную, требуется RegAsm. –