Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

regasm /codebase

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top