Невозможно вызвать Com + из кода vb6 - PullRequest
0 голосов
/ 19 февраля 2012

Я создал C # DLL в 2010 году со всеми атрибутами Com +. Я создал сильный ключ, и this strong key to Application properties and register it to the assembly: sn -k ComPlusClass.snk

Use VS tool to register the assembly as: regasm ComPlusExample.DLL

Create a Type Library using the tool: `tlbexp ComPlusExample.DLL

Register it in COM+ as: regsvcs ComPlusExample.DLL позже я создал приложение в vb6 и добавил сгенерированный .tlb в ссылки. Все работает нормально. Я могу позвонить c # dll с vb6. Но мне нужно передать этот код моему клиенту, и там невозможно выполнить все эти шаги. Поэтому для этого я создал exe, щелкнув правой кнопкой мыши мое приложение в COM +. Я установил этот exe на мою клиентскую систему. Но когда я добавил ссылку tlb из progmramfiles, это показывает ошибку, что module can't be found .plz помогает мне в этом отношении. Создание exe - это правильный способ экспортировать мой com + из одной системы в другую ..

1 Ответ

0 голосов
/ 10 марта 2012

Ваше приложение использует .NET Framework, поэтому команда "regsvcs" должна выполняться на клиентском компьютере, на котором вы развертываете. Если вы просто экспортируете библиотеку и импортируете в COM +, я не верю, что необходимые записи CCW (вызываемой оболочки COM) добавляются в реестр Windows.

Поэтому я бы порекомендовал создать командный файл, который запускает команду "regsvcs" с нужными вам параметрами. Вам не нужно будет генерировать файл TLB на клиенте, поскольку он используется только во время разработки.

Конечно, вы также можете создать установщик проекта, который сделает это за вас, но если вы ищете быстрое решение, пакетный файл сделает это.

...