Зарегистрировать компонент C # COM? - PullRequest
1 голос
/ 05 августа 2009

Я разработал компонент C # com, который я использую из управляемого c ++. На моей машинке, когда все работает нормально. Однако, когда я распространял файлы, я получил ошибку, что компонент не был зарегистрирован. Когда я пытаюсь regsvr32 на dll, это дает мне ошибку (dll C # не может быть зарегистрирован) Как правильно зарегистрировать эту COM DLL?

Ответы [ 4 ]

2 голосов
/ 05 августа 2009

Вы используете regasm с /codebase (и он должен быть ComVisible [но, поскольку Патрик Макдональд правильно указывает, вы уже прошли через это, поскольку он работает локально] )

1 голос
/ 05 августа 2009

Я считаю, что вам обычно нужно сделать:

regasm /codebase

Поскольку COM должен знать точное местоположение вашей сборки, чтобы иметь возможность ее загрузить.

Как и предлагали другие, вам нужно настроить проект C # как видимый COM (настройки проекта, приложение, кнопка информации о сборке).

Более точное управление тем, какие классы являются видимыми или нет, можно получить с помощью атрибута [ComVisible (true)] / [ComVisible (false)] перед каждым классом

1 голос
/ 05 августа 2009

Используйте RegAsm с siwtch /codebase, если ваша сборка не установлена ​​в GAC (глобальный кэш сборок).

Подробности дальнейших переключателей здесь

0 голосов
/ 05 августа 2009
...